Jenkins - maven-jar-plugin - kein jar-file

Hein_nieH

Bekanntes Mitglied
Moinsen,

es ist echt zum verzweifeln.
Ich mache mit jenkins meine ersten Gehversuche und möchte im Build process erreichen, dass auch ein Jar-Datei erzeugt wird.

Starte ich meine pom.xml direkt in Eclipse funktioniert das ganze auch.
Wenn ich jedoch der Build von jenkins ausgeführt werden soll, macht das maven-jar-plugin scheinbar gar nichts.

Beim Build in Jenkins wird auch nichts bemängelt (blauer Ball).
Hier meine pom.xml so wie ich sie in Jenkins verwende:

XML:
<project xmlns="[URL]http://maven.apache.org/POM/4.0.0[/URL]" xmlns:xsi="[URL]http://www.w3.org/2001/XMLSchema-instance[/URL]" xsi:schemaLocation="[URL]http://maven.apache.org/POM/4.0.0[/URL] [URL]http://maven.apache.org/xsd/maven-4.0.0.xsd[/URL]">
    <modelVersion>4.0.0</modelVersion>
      <groupId>Git-Test</groupId>
      <artifactId>Git-Test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
     
      <name>Git-Test</name>
      <description>
          Test von Git und integration in jetkins
      </description>
      <organization>
          <name>ich</name>
      </organization>
     
      <properties>
            <project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>
          <project.reporting.outputEncoding>Cp1252</project.reporting.outputEncoding>
     
          <src>src</src>
          <target>target</target>
          <doc>doc</doc>
         
          <!-- Quellverzeichnis der Elemente -->
          <src.main>${src}/main</src.main>
          <src.test>${src}/test</src.test>
         
          <!-- Verzeichnis für generierte Elemente -->
          <target.main>${target}/main</target.main>
          <target.test>${target}/test</target.test>
         
          <!-- Jenkins Workspace -->
          <jenkins.local>C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins\.jenkins</jenkins.local>
          <jenkins.local.ws>${jenkins.local}\workspace</jenkins.local.ws>
         
          <!-- Jenkins Projekt Git-Test x-->
          <jenkins.project>Git-Test x</jenkins.project>
          <java.project>Git-Test</java.project>
      </properties>
     
      <!-- Anpassung des Standard-Build-Prozesses -->
      <build>
        <sourceDirectory>${src.main}</sourceDirectory>
        <testSourceDirectory>${src.test}</testSourceDirectory>
        <directory>${target}</directory> <!-- Basisverezichnis für generierte Dateien -->
       
        <outputDirectory>${target.main}</outputDirectory>
        <testOutputDirectory>${target.test}</testOutputDirectory>
       
        <resources>
              <resource>
                <directory>src</directory>
                <includes></includes>
                <excludes>
                      <exclude>**/*.java</exclude>
                </excludes>
              </resource>
        </resources>
       
       
        <!-- Anpassung des Build prozesses -->
        <plugins>
            <!-- Konfiguration des surefire-Plugins anpassen -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <testFailureIgnore>false</testFailureIgnore>
                    <formats>
                        <format>xml</format>
                        <format>html</format>
                    </formats>
                    <outputDirectory>${jenkins.local.ws}\${jenkins.project}\${java.project}\target\surefire-reports</outputDirectory>
                </configuration>
            </plugin>
               
            <!-- Konfiguration des maven-compiler-Plugins anpassen -->
              <plugin>
                  <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <!-- <release>11</release> -->
                    <!-- ab version 3.8.0 ist das Tag release möglich -->
                    <source>1.7</source>
                      <target>1.7</target>
                  </configuration>
            </plugin>
             
              <!-- Konfiguration des maven-jar-Plugins anpassen -->
            <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-jar-plugin</artifactId>
                  <version>3.2.0</version>
                  <configuration>
                      <!-- Verändert / Erweitert das default-Manifest -->
                      <archive>
                          <manifest>
                              <addClasspath>true</addClasspath>
                              <mainClass>main.MoinMoin</mainClass>
                          </manifest>
                      </archive>
                      <!--  Name der jar-Datei aendern -->
                      <finalName>GitTest_xxx_Test</finalName>
                     
                      <!--  Ausgabeort für jar-Datei aendern -->
                      <outputDirectory>${user.home}\Documents\Programmierung_Java\EXPORT</outputDirectory>
                 
                </configuration>
              </plugin>
             
              <!-- Konfiguration des cobertura-plugins anpassen -->
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <formats>
                        <format>xml</format>
                        <format>html</format>
                    </formats>
                    <!-- -->
                    <outputDirectory>${jenkins.local.ws}\${jenkins.project}\${java.project}\target\site\cobertura</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>cobertura</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
           
            <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-checkstyle-plugin</artifactId>
                   <version>3.1.1</version>
                   <configuration>
                     <configLocation>google_checks.xml</configLocation>
                     <encoding>UTF-8</encoding>
                     <consoleOutput>true</consoleOutput>
                     <failsOnError>true</failsOnError>
                     <linkXRef>false</linkXRef>
                   </configuration>
                   <executions>
                     <execution>
                           <id>validate</id>
                           <phase>package</phase>
                           <goals>
                             <goal>check</goal>
                           </goals>
                     </execution>
                   </executions>
             </plugin>
            
         </plugins>
      </build>
         
       
      <!-- Einbindung externer Bibliotheken --> 
    <dependencies>
          <!-- junit 4.12.0 nutzen, selbe version wie eclipse -->
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
          </dependency>
      </dependencies>
   
</project>

Was müsste ich ändern?

Gruss Hein_nieH
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Wo kommt diese pom her? Das ist die schlimmste pom die ich je gesehen hab, der Großteil davon sieht einfach völlig überflüssig und/oder falsch aus.
 

mrBrown

Super-Moderator
Mitarbeiter
Hier ist eine Äquivalente pom zu deiner, mit zwei Änderungen: Jacoco statt Cobertura und Junit Jupiter (aka Junit 5) anstatt Junit 4 – beide, damit das ganze auch im nächsten Jahrzent noch funktioniert.
Außerdem Version von "1.7" auf "7" geändert, aus dem gleichen Grund (allerdings ist es nicht sehr sinnvoll, 7 zu nutzen).


XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Git-Test</groupId>
    <artifactId>Git-Test</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>Git-Test</name>
    <description>
        Test von Git und integration in jetkins
    </description>
    <organization>
        <name>ich</name>
    </organization>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>7</java.version>
    </properties>

    <!-- Anpassung des Standard-Build-Prozesses -->
    <build>
        <!-- Anpassung des Build prozesses -->
        <plugins>
            <!-- Konfiguration des surefire-Plugins anpassen -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M1</version>
            </plugin>

            <!-- Konfiguration des maven-compiler-Plugins anpassen -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <release>${java.version}</release>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                    <debug>true</debug>
                    <debuglevel>lines,vars,source</debuglevel>
                    <parameters>true</parameters>
                </configuration>
            </plugin>

            <!-- Konfiguration des maven-jar-Plugins anpassen -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <!-- Verändert / Erweitert das default-Manifest -->
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>main.MoinMoin</mainClass>
                        </manifest>
                    </archive>
                    <!-- Name der jar-Datei aendern -->
                    <finalName>GitTest_xxx_Test</finalName>
                </configuration>
            </plugin>

            <!-- Konfiguration des jacoco-plugins anpassen -->
            <!-- Ersatz für Cobertura, da wir 2020 und nicht mehr 2010 haben -->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.5</version>
                <configuration>
                    <append>false</append>
                </configuration>
                <executions>
                    <execution>
                        <id>pre-unit-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <configLocation>google_checks.xml</configLocation>
                    <encoding>UTF-8</encoding>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <linkXRef>false</linkXRef>
                </configuration>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>package</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>


    <!-- Einbindung externer Bibliotheken -->
    <dependencies>
        <!-- junit jupiter statt junit 4, wie oben: wir haben 2020, nicht 2010... -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
 

Hein_nieH

Bekanntes Mitglied
Moinsen,

vielen Dank für die Zuarbeit.
Mal abgesehen, ob wir nun 2010 oder 2020 haben: Es geht mir bei meinen ersten Gehversuchen primär darum das grundsätzliche Prinzip von
Jenkins zu erfassen. Da ist es mir nicht so wichtig, ob ich nun die neusten plugiins verwende oder nicht.

Die zugesandte pom.xml habe ich getestet. Ich kann sie auch fehlerfrei anwenden.
Das Grundproblem bleibt: Ich erhalte keine jar-Datei.
Ich erhalte nur eine jar-Datei wenn ich Mein Maven-Projekt direkt in Eclipse oder als Kommandzeile ausführe.

Wenn ich jedoch den Build via Jenkins erzeuge wird keine Jar erzeugt oder ich kann sie nicht finden.
Scheinbar muss es an einer Einstellung in Jenkins liegen. Ich habe mir auch die Yuotube-Beiträge zu diesem Thema angesehen.
Leider habe ich nichts gefunden was bei mir anders konfiguriert ist.

Vielleicht habe ich auch einen Denkfehler.
Nach meiner Auffassung müssten bei einem Build via Jenkins im Jenkins-Workspace unter dem Projektfolder im target-Verzeichnis alle erzeugte Ergebnisse, wie z.B. Testergebnisse u.a. abgelegt werden.
Es werden derzeit aber nur die von Git im master-brunch befindlichen Dateien des Projektes angezeigt.
Mit anderen Worten egal wie ich meine pom.xml ändere ich erhalte im Jenkis-workspace keine im Build-Process generierte Datei.
Daher vermute ich, dass es eine Konfigurationsfrage in Jenkins ist.

Gruss Hein_nieH
 

mrBrown

Super-Moderator
Mitarbeiter
Mal abgesehen, ob wir nun 2010 oder 2020 haben: Es geht mir bei meinen ersten Gehversuchen primär darum das grundsätzliche Prinzip von
Jenkins zu erfassen. Da ist es mir nicht so wichtig, ob ich nun die neusten plugiins verwende oder nicht.
Das ist vergleichbar mit Autofahren lernen auf nem Ford Modell T - klappt sicherlich irgenwie, glücklich wirst du aber nicht damit werden :)

Die sehr veralteten Plugins und die noch ältere Java-Version ist auch nur ein neben-Problem, viel relevanter ist der völlig kaputt konfigurierte Build.

Wenn ich jedoch den Build via Jenkins erzeuge wird keine Jar erzeugt oder ich kann sie nicht finden.
Wenn die Config, die du im anderen Thread gezeigt hast, noch aktuell ist: Du führst ganz explizit nur cobertura:cobertura aus, dabei wird keine Jar-Datei generiert.
Das Goal sollte besser einfach nur clean verify sein (oder besser: nur verify, und bei der Repository-Config angeben, das jedes Mal neu geklont wird, verhindert zusätzlich ein paar Fehler).
 

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe das geänderte pom.xml verwendet. Auch habe ich als Goal "clean verify" bzw "verify" verwendet.

und bei der Repository-Config angeben, das jedes Mal neu geklont wird, verhindert zusätzlich ein paar Fehler).
Wo würde ich diese Einstellung finden?
BeiAdditional Behaviours finde ich nichts oder wäre das nicht das richtige Quelle für die Einstellungen.
Tut mir leid, dass ich so blöde fragen muss, aber ich habe keine verständliche Doku für meine Jenkins-version (2.249.3)

Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Hallo,

danke für die Antwort. Ich habe "Wipe out repository & force clone" inzugefügt (dachte das heisst nur "clone" :rolleyes: )

Im Workspace wird kein target-Folder erzeugt, siehe Anhang. Liegt das daran, dass ich noch keine Datei eingecheckt aus diesem Folder in Git habe?

Aber der Tipp mit "Wipe out repository & force clone" hat etwas gebracht. Immerhin ist jetzt im Git-target-Folder die Jar-Datei sichtbar :):):)

Das nächste Problem wäre wie ich jetzt im Jenkins-Workspace (so wie im git Repository) ein target-Folder erzeuge.
Das ist wohl die Vorraussetzung, um die Ergebnisse vom Buildprozess, wie Testergebnisse, Testabdeckung und Checkstyle sichtbar zu machen.

An dieser stelle schon einem vielen Dank für die erhaltene Hilfe.

Gruss Hein_neiH
 

Anhänge

  • xx2.pdf
    257 KB · Aufrufe: 7

mrBrown

Super-Moderator
Mitarbeiter
Liegt das daran, dass ich noch keine Datei eingecheckt aus diesem Folder in Git habe?
Aus dem Ordner solltest du in keinem Fall eine Datei einchecken.



Zeig mal die Konsolen-Ausgabe des Builds im Jenkins.
Nutzt du noch deine pom? Falls ja, probier es mit der von mir geposteten pom. Der Cobertura-Report wird dann zwar nicht mehr genereiert, dafür ein Jacoco-Report, aber darum kann man sich später kümmern.
 

Hein_nieH

Bekanntes Mitglied
Moinsen,

die Post-Build-Aktion mit dem Cobertura-Report ist noch eine Altlasto_O.
Ich habe die von dir erzeugte pom.xml verwendet.
Aus dem target-Folder habe ich nichts eingecheckt;)

Anbei die Konsolenausgabe des Build, welcher erfolgreich durchgelaufen ist.
Gruss Hein_nieH


Code:
Gestartet durch Benutzer ichselbst
Running as SYSTEM
Baue in Arbeitsbereich C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\Git-Test x
The recommended git tool is: NONE
No credentials specified
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository C:\Users\E7470\Documents\GitRepository
> C:\Program Files (x86)\Git\bin\git.exe init C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\Git-Test x # timeout=10
Fetching upstream changes from C:\Users\E7470\Documents\GitRepository
> C:\Program Files (x86)\Git\bin\git.exe --version # timeout=10
> git --version # 'git version 2.29.2.windows.2'
> C:\Program Files (x86)\Git\bin\git.exe fetch --tags --force --progress -- C:\Users\E7470\Documents\GitRepository +refs/heads/*:refs/remotes/origin/* # timeout=10
> C:\Program Files (x86)\Git\bin\git.exe config remote.origin.url C:\Users\E7470\Documents\GitRepository # timeout=10
> C:\Program Files (x86)\Git\bin\git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
Avoid second fetch
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision 7ac82eb0befba7c5da303d19438249240bc2abda (refs/remotes/origin/master)
> C:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout # timeout=10
> C:\Program Files (x86)\Git\bin\git.exe checkout -f 7ac82eb0befba7c5da303d19438249240bc2abda # timeout=10
Commit message: "Änderung 28.12.2020"
First time build. Skipping changelog.
[Git-Test x] $ cmd.exe /C "mvn -f C:\Users\E7470\Documents\GitRepository\Git-Test\pom_Jenkins_2.xml verify && exit %%ERRORLEVEL%%"
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------< Git-Test:Git-Test >--------------------------
[INFO] Building Git-Test 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.5:prepare-agent (pre-unit-test) @ Git-Test ---
[INFO] argLine set to -javaagent:C:\\Windows\\system32\\config\\systemprofile\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.8.5\\org.jacoco.agent-0.8.5-runtime.jar=destfile=C:\\Users\\E7470\\Documents\\GitRepository\\Git-Test\\target\\jacoco.exec,append=false
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Git-Test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\E7470\Documents\GitRepository\Git-Test\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ Git-Test ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Git-Test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\E7470\Documents\GitRepository\Git-Test\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ Git-Test ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:3.0.0-M1:test (default-test) @ Git-Test ---
[INFO] No tests to run.
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.5:report (post-unit-test) @ Git-Test ---
[INFO] Skipping JaCoCo execution due to missing execution data file.
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ Git-Test ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: C:\Users\E7470\Documents\GitRepository\Git-Test\target\GitTest_xxx_Test.jar
[INFO]
[INFO] --- maven-checkstyle-plugin:3.1.1:check (validate) @ Git-Test ---
[INFO] Beginne Prüfung...
Prüfung beendet.
[INFO] You have 0 Checkstyle violations.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.227 s
[INFO] Finished at: 2020-12-28T15:38:27+01:00
[INFO] ------------------------------------------------------------------------
Publishing Coverage report....
No reports were found
Finished: SUCCESS
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Irgendwas ist da immer noch sehr falsch konfiguriert, der Build läuft nicht im Workspace, sondern in deinem Original-Repo ab
 

Hein_nieH

Bekanntes Mitglied
Hallo,

die Vermutung habe ich auch, nur sind meine Ideen erschöpft wo ich da noch eine Konfigurationsmöglichkeit habe.
Daher habe ich mein Einstellungen mitgepostet.
Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe mit beiden pom.xml experimentiert.
. pom_Jenkins.xml ist meine ursprüngliche Datei (bemängelt durch den User mrBrown)
- pom_Jenkins_2.xml ist die vom MrBrown geänderte Datei.

Das Grundproblem ist das der build nicht im Jenkins-Workspace ausgeführt wird.
Im Anhang habe ich ein paar Screenshots zu den Installationsverzeichnissen herangehängt.

Im Installationspfad habe ich die Datei jenkins.xml abgeändert, damit sie auch auf das Verzeichnis
"C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins" zeigt.
War halt ein Versuch der auch nichts gebracht hat. ☹️

Gruss Hein_nieH
 

Anhänge

  • xx3.pdf
    160,6 KB · Aufrufe: 2

mrBrown

Super-Moderator
Mitarbeiter
Was ich an deiner Stelle machen würde: Das Projekt löschen, Jenkins-Home löschen, alle Umgebungsvariablen, die irgendwas mit Jenkins zu tun haben löschen – und dann ganz von vorn anfangen.

Also:
  1. Maven, Java, git installieren – hast du alles schon, solltest nur sichergehen, das am besten Java 11 installiert ist.
  2. Neues git-Repo erstellen
    1. Neuen Ordner erstellen
    2. Darin git init
  3. Projekt in dem Repo erstellen
    1. von mir oben gepostete pom in das Repo kopieren
    2. src/main/java/main/MoinMoin.java erstellen und mit unten stehendem Code füllen
    3. mit git add . die beiden Dateien hnizufügen (und nur die beiden Dateien!), dann mit git commit commiten
    4. mit mvn verify den Build testen, sollte erfolgreich durchlaufen
  4. Jenkins installieren
    1. neuste Version runterladen (Weekly ist okay)
    2. Über Kommandozeile starten, KEINE Umgebungsvariablen oä setzen)
    3. Im Browser öffnen (localhost:8080), Passwort eingeben
    4. "suggested Plugins" installieren lassen
    5. Nutzer anlegen
    6. Jenkins verwalten -> Plugins installieren -> "Maven Integration" raussuchen und installieren lassen (ohne Neustart)
    7. Jenkins verwalten -> Konfiguration der Hilfsprogramme -> Maven-Installation hinzufügen
  5. Neuen Job anlegen
    1. Namen eingeben, Maven Projekt auswählen
    2. Unter "Source-Code-Management" git auswählen und den Pfad zu deinem Repo aus Schritt 2 angeben, "Wipe out repository & force clone" als "Additional Behaviour" wählen
    3. Unter "Build" als Goal "verify" angeben
    4. Speichern
  6. Build starten

Java:
package main;

public class MoinMoin {
  public static void main(String... args) {
    System.out.println("MoinMoin");
  }
}
 

Hein_nieH

Bekanntes Mitglied
Hallo,

hier noch die Dateien jenkins.xml (befindet sich im Installationsverzeichnis) und config.xml (befindet sich im Verzeichnis .jenkins)

:rolleyes: Vielleicht kann man hier den Fehler erkennen :rolleyes:

Gruss Hein_nieH
 

Anhänge

  • xx4_Setup.pdf
    99,5 KB · Aufrufe: 2
  • xx5_config.pdf
    78,7 KB · Aufrufe: 2

Hein_nieH

Bekanntes Mitglied
Hallo,

ich glaube (Glauben liegt ja im religiösen Bereich) das es wohl das Beste sein wird.
Trotzdem würde es mich interessieren was hier (möglicherweise) falsch konfiguriert ist, da das Problem je immer wieder auftreten kann.

Gruss Hein_nieH
 

mrBrown

Super-Moderator
Mitarbeiter
Trotzdem würde es mich interessieren was hier (möglicherweise) falsch konfiguriert ist, da das Problem je immer wieder auftreten kann.
Naja, irgendwo hast du irgendwas falsch gemacht. Fehlerquellen gibts viele, vorallem wenn das Vorgehen hauptsächlich aus "einfach rumprobieren" besteht.

So wie deine pom aussah, will ich nicht wissen, was du sonst noch probiert hast, ich hab da vemutlich die nächsten Wochne noch Albträume von ;) Wie kamst du überhaupt darauf, die so zu verändern?

Ich würde übringens nicht davon ausgehen, dass das Problem jemals wieder auftritt – ich hab sowas bisher in ~4 Jahren und hunderten betreuten Jobs noch kein Mal gesehen. Man sollte halt nur nicht wild rumprobieren und so ein paatr Grundregeln beachten - zB immer nur zum Projekt relative Pfade in der pom
 

LimDul

Top Contributor
Hallo,

ich habe mit beiden pom.xml experimentiert.
. pom_Jenkins.xml ist meine ursprüngliche Datei (bemängelt durch den User mrBrown)
- pom_Jenkins_2.xml ist die vom MrBrown geänderte Datei.
Neu anfangen halte ich auch für richtig.

Aber irgendwo musst du im Jenkins Job ja die pom_Jenkins_2.xml hinterlegt haben. Und ich vermute fast, dass du da den absoluten Pfad angeben hast...

Absolute Pfade haben weder in einem Jenkins Job, noch in einer pom etwas zu suchen. Das widerpricht dem Sinn und Zweck dieser Zweck dieser Dateien.
 

Hein_nieH

Bekanntes Mitglied
Hallo,

Bingo :) :) :)
Das war die Ursache für meine langes Gesuche.

Nachdem ich jetzt das ganze Projekt neu aufgesetzt hatte (was wohl gar nicht nötig war) und den Pfad zur pom.xml relativ vom Repo aus gesetzt habe FUNKTIONIRT es :).

Gemessen an der verplemperten Zeit für das Experimentieren habe ich hier viel Lehrgeld gezahlt.
Ich habe von MrBrom die pom.xml verwendet und nun ist alles in Butter.

Noch einmal Danke an beide für die Hilfe.

:) Gruss Hein_nieH :)
 

Hein_nieH

Bekanntes Mitglied
Hallo,

ein (hoffentlich) kleines Problem habe ich noch.
Weder das plugin jacoco noch das plugin cobertura erzeugen eine Reportdatei.
Beide plugins müssten im target-verzeichnis ein subfolder "site" anlegen.
Ich habe das plugin jacoco nachinstalliert und mich dazu etwas belesen.
Wo wären da die Stellschrauben? Ich habe die pom vom User MrBrown verwendet.

Gruss Hein_nieH
 

LimDul

Top Contributor
Der ordner Site wird vom maven Site Plugin erstellt. Den brauchst du aber für jacoco nicht. Wenn ich mvn test ausführe, hab ich danach im target Ordner eine jacoco.exec liegen. Die sollte Jenkins reichen. (Bzw. in neueren Versionen ist eine xml, die da liegt)

Der Report ist dafür da, wenn du dir das direkt im Browser ansehen willst ohne Jenkins und Co.
 

Hein_nieH

Bekanntes Mitglied
Hallo,

danke für die Info.
Scheinbar liegt es dann daran, dass meine Test-Casesnicht erkannt werden.
Ich werde mal etwas herumexperimentieren.

Gruss Hein_nieH
 

mrBrown

Super-Moderator
Mitarbeiter
Die sollten auf „Test“ enden und die Methoden sollten jeweils mit @Test annotiert sein – viel beachten muss man da eigentlich nicht
 

Hein_nieH

Bekanntes Mitglied
Hallo,

ich bin ein Stück weiter gekommen allerdings ohne logisches Verständnis.

wenn ich in der configuration "goals and options" cobertura:coberutra definiere, dann wird auch die coverage Datei im folder /target/site/cobertura erzeugt.
Gebe ich cobertura:coberutra nicht ein, dann wird auch keine coverage-Datei, geschweige denn ein site-folder erzeugt.

Ich habe das so verstanden: wenn das artifact cobertura-maven-plugin in der pom.xml angegeben ist und configuriert wird, dann sollte
das cobertura plugin auch die coverage.xml erzeugen.
Gebe ich das artifact in der pom nicht an aber definiere das goal in der Komandozeile bzw im Feld "goals and options" dann sollte es ebenfalls erzeugt werden. Liege ich da richtig? :rolleyes:
Vielleicht habe ich den abschnitt in der Doku nicht richtig verstanden. Was ist denn sonst gemeine mit enable "cobertura" analysis in your 'pom.xml' files :oops:
Vielleicht kann mir jemand das besser erklären ....

Anbei noch ein sinnfreier Test für meine Experimente..

Gruss Hein_nieH

package test;

import static org.junit.Assert.*;

import org.junit.Test;

public class HalloGitTest
{

@Test
public void Test_1()
{
String strDescription ="Testinfo";
assertTrue(strDescription, 1==1);
}

}//class
 

Anhänge

  • xx05.pdf
    62,9 KB · Aufrufe: 1

mrBrown

Super-Moderator
Mitarbeiter
Ich kann mich nur wiederholen: lass Cobetura weg, das klappt aktuell bei dir sowieso nur, weil du eine super veraltete Java-Version nutzt...
Es ist schön, dass du die Grundlagen lernen willst, aber Grundlagen lernen, die man danach direkt wieder vergessen kann, ist eher sinnlos.


Jacoco ist passend konfiguriert, da wird alles nötige beim Test generiert. Keine Ahnung, wie man das bei Cobertura machen muss, man muss sicher noch angeben, dass das cobertura-Goal beim normalen Build ausgeführt wird.
 

Hein_nieH

Bekanntes Mitglied
Ich habe es zuvor auch mit Jacoco versucht.
Mir ist nur nicht klar was ich im Feld "goals and options" als goal eingeben soll.
Daher der Rueckschwenk auf cobertura.
Sonst hätte ich Jacoco schon längst benutzt.
Mir ist auch noch nicht klar warum in bei "goals and options" nochmals ein goal (für cobertura oder Jacoco) definieren muss, obwohl es im pom schon definiert ist. Ohne einen Eintrag wird ja keine Reportdatei angelegt.
Werde mal weiter experimentieren. Bloß gut das ich jetzt ein paar freie Tage habe.
Gruss Hein_nieH
 

mrBrown

Super-Moderator
Mitarbeiter
Mir ist nur nicht klar was ich im Feld "goals and options" als goal eingeben soll.
verify


Mir ist auch noch nicht klar warum in bei "goals and options" nochmals ein goal (für cobertura oder Jacoco) definieren muss, obwohl es im pom schon definiert ist.
Die goals musst du entweder manuell aufrufen, oder in der pom an Phasen binden – letzteres ist für Jacoco gemacht, deshalb wird das automatisch ausgeführt, für Cobertura war das nicht gemacht, deshalb musstest du das per Hand ausführen.
 

Hein_nieH

Bekanntes Mitglied
Hallo,

endlich gibt es (rechtzeitig vor dem Jahreswechsel) eine gute Nachricht.
Alles läuft jetzt perfekt (auch Jacoco) :):):)
Ursache war wohl mein unzureichendes Verständnis von Git.
Nachdem ich die pom.xml in Git commitet (eingecheckt) habe wird genau das durchgeführt was in der pom.xml steht.
Noch einmal danke für die Unterstützung.
Letzte Frage: gibt es eine Möglichkeit die Ergebnisse vom checkstyle-plugin graphisch darzustellen.
Ich erhalte die Ergebnisse nur via Konsolenausgabe :rolleyes:
Wenn ja, wie würde ich die graphische Ausgabe dann einbinden?
Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Hallo,

nun benötige ich doch noch einmal etwas "Nachhilfeunterricht".
In Jenkins finde ich die die plugins "checkstyle" und "findbugs" nicht.
Ich habe unter "Jenkins" -> "Plugins verwalten" -- Tab "Verfügbar" und Tab "Installiert" beide plugins nicht gefunden.
Im Jenkinsverzeichnis sind beide plugins im plugins-folder nicht verfügbar.
Wie kann ich diese plugins in Jenkins installieren?
Bei den in google gefundenen Beiträgen wird immer davon ausgegangen, dass diese plugins existieren.

Kann mir jemad helfen?
Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Hallo,

danke für die Info.
Die Installation von "Warnings Next Generation" hat prima geklappt und es funktioniert supppi.
Ich denke dass ich nun alles in Jenkins beisammen habe was ich zum build benötige.
War zwar ein langer weg aber dümmer ist man dabei ja auch nicht geworden :)
Nun kann ich mich endlich wieder dem Programmieren zuwenden. ;)

Gruss Hein_nieH
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
K Jenkins Konfiguration für einen multi-module Maven Projekt Tools - Maven, Gradle, Ant & mehr 2
G Probleme Jenkins mit Maven einzurichten Tools - Maven, Gradle, Ant & mehr 4
X Maven Jenkins/maven - abhängige Projekte automatisch bauen Tools - Maven, Gradle, Ant & mehr 7
L Jenkins Build mit git Hashwert Tools - Maven, Gradle, Ant & mehr 2
H Jenkins aktulles Checkstyle Plugin Tools - Maven, Gradle, Ant & mehr 2
OnDemand Jenkins Pipeline Build > Send Info Jira Tools - Maven, Gradle, Ant & mehr 3
H Nutzung einer eigenen checkstyle Konfiguration in Jenkins - Grundsätzliches Tools - Maven, Gradle, Ant & mehr 2
H Jenkins - Publish Coverage Report Tools - Maven, Gradle, Ant & mehr 19
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
H Maven Bekomme cobertura in jenkins nicht zu laufen :-( Tools - Maven, Gradle, Ant & mehr 1
Thallius Jenkins -> git to zip? Tools - Maven, Gradle, Ant & mehr 5
Thallius Jenkins nur zip file erstellen? Tools - Maven, Gradle, Ant & mehr 3
B Jenkins Emal-Versand Tools - Maven, Gradle, Ant & mehr 5
K Subversion svn & Jenkins - Änderungen werden nicht angezeigt Tools - Maven, Gradle, Ant & mehr 4
Y Jenkins Zeitsteuerung Tools - Maven, Gradle, Ant & mehr 3
M Jenkins Rechte-Verwaltung Tools - Maven, Gradle, Ant & mehr 3
schalentier Probleme mit Jenkins Tools - Maven, Gradle, Ant & mehr 7
G Ant Hudson/Jenkins, Ant und JUnit unter einen Hut bringen Tools - Maven, Gradle, Ant & mehr 12
G Jenkins Userverwaltung Tools - Maven, Gradle, Ant & mehr 7
G Maven JMeter und Jenkins Tools - Maven, Gradle, Ant & mehr 1
G Jenkins Task starten Tools - Maven, Gradle, Ant & mehr 16
Oneixee5 Maven deploy - per SSH Tools - Maven, Gradle, Ant & mehr 6
H Maven kein Hauptmanifestattribut Tools - Maven, Gradle, Ant & mehr 10
M Programm mit Maven erstellen und starten samt Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 27
D Interne Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 51
J log4j2 mit Hibernate über Maven Tools - Maven, Gradle, Ant & mehr 10
thor_norsk Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf IntelliJ IDE starten Tools - Maven, Gradle, Ant & mehr 8
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
thor_norsk Maven Tools - Maven, Gradle, Ant & mehr 32
ExceptionOfExpectation Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf Eclipse starten Tools - Maven, Gradle, Ant & mehr 20
Ich kann Maven nicht als UmgebungsVariable hinzufügen Tools - Maven, Gradle, Ant & mehr 2
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
W Was "braucht" man denn alles? Maven, Ant, Git, ... Tools - Maven, Gradle, Ant & mehr 21
N Fehler beim Imgui mit Maven Tools - Maven, Gradle, Ant & mehr 7
M Spring Boot Maven pom.xml-Eintrag Tools - Maven, Gradle, Ant & mehr 17
Encera JavaFX und Maven funktioniert nicht Tools - Maven, Gradle, Ant & mehr 1
B maven multi module Projekt und unnötige/zusätzliche Leerzeilen Tools - Maven, Gradle, Ant & mehr 4
J Maven Konfusion Tools - Maven, Gradle, Ant & mehr 7
Tippster Maven Sqlite integrieren (Eclipse, Maven) Tools - Maven, Gradle, Ant & mehr 4
T Image kreieren mit Maven bei JavaFX und nicht modularen Jars Tools - Maven, Gradle, Ant & mehr 12
T JSON Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 7
T JavaFX, Jar über Maven kreieren Tools - Maven, Gradle, Ant & mehr 2
Encera Libraries Maven Projekt hinzufügen Tools - Maven, Gradle, Ant & mehr 9
Oneixee5 Maven Phase Tools - Maven, Gradle, Ant & mehr 3
Robertop maven copy-resources nicht in WAR Datei Tools - Maven, Gradle, Ant & mehr 2
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
H Maven Maven: <mainClass>NAME?</mainClass> Tools - Maven, Gradle, Ant & mehr 13
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
M Missing Artifact on selbst gehostestes Maven Paket Tools - Maven, Gradle, Ant & mehr 8
M Error code 409 maven Tools - Maven, Gradle, Ant & mehr 5
M github + maven Fehler beim repository erstellen Tools - Maven, Gradle, Ant & mehr 1
M durch Maven wird "var" nicht gefunden Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
M Maven jpackage-image wird nicht gefunden Tools - Maven, Gradle, Ant & mehr 22
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
L Maven IntelliJ, Maven und JavaFX + SceneBuilder Tools - Maven, Gradle, Ant & mehr 23
von Spotz Maven und Spring: "Add to classpath" ? Tools - Maven, Gradle, Ant & mehr 29
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
P Maven Projekt Abhängigkeiten auf bekante Schwachstellen prüfen Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
B Maven und Intellij Tools - Maven, Gradle, Ant & mehr 24
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
yakazuqi Maven Eigene API mit Maven einbinden Tools - Maven, Gradle, Ant & mehr 1
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Maven Wie die Maven Project version in JSP page verwenden? Tools - Maven, Gradle, Ant & mehr 2
C Maven Multi-Module Projekt Tools - Maven, Gradle, Ant & mehr 2
T Maven Warnings/Fehlermeldungen Tools - Maven, Gradle, Ant & mehr 12
T Maven und Datenbank(treiber) Tools - Maven, Gradle, Ant & mehr 13
T Maven Runnable Jar Tools - Maven, Gradle, Ant & mehr 5
T Grundlagen Maven und Git/Github Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
G Maven upload Tools - Maven, Gradle, Ant & mehr 0
K Maven - Parent oder Dependency? Tools - Maven, Gradle, Ant & mehr 5
B Maven Maven deploy Tools - Maven, Gradle, Ant & mehr 4
P Nur einen Teilbaum in Maven releasen? Tools - Maven, Gradle, Ant & mehr 7
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
P JavaFX jar mit Maven Tools - Maven, Gradle, Ant & mehr 9
P Maven & Intellij Modul kann nicht aufgelöst werden Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
D Maven Maven und die Build-Geschwindigkeit Tools - Maven, Gradle, Ant & mehr 11
K Maven IntelliJ + Maven + JavaFX Tools - Maven, Gradle, Ant & mehr 2
J Maven Mit Maven eine ZIP Datei erstellen Tools - Maven, Gradle, Ant & mehr 0
K Maven install schlägt fehl Tools - Maven, Gradle, Ant & mehr 10
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
I Maven Interface hinzugefügt - Error Tools - Maven, Gradle, Ant & mehr 1
M Verständnisfrage Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven installieren - "Befehl wurde nicht gefunden" Tools - Maven, Gradle, Ant & mehr 1
E Maven: Wie Abhängigkeiten analysieren? Tools - Maven, Gradle, Ant & mehr 0
E Maven Maven distributionManagement Vererbung in child POM Tools - Maven, Gradle, Ant & mehr 8
P Maven Parent- Child POMs Tools - Maven, Gradle, Ant & mehr 13

Ähnliche Java Themen

Neue Themen


Oben