Ich habe ein Java-Projekt, das an GitHub gebunden ist. Das Projekt besteht aus 3 Modulen. Ich habe das Jenkins Workflow Multibranch Pipeline Plugin konfiguriert, um die 3 Module zu erstellen.Maven-Build schlägt NUR bei Ausführung mit Jenkins fehl
node {
// Mark the code checkout 'stage'....
// stage 'Checkout'
// Get some code from a GitHub repository
git url: '[email protected]:me/myproject.git', credentialsId: '###'
// Get the maven tool.
// ** NOTE: This 'M3' maven tool must be configured
// ** in the global configuration.
def mvnHome = tool 'M3'
stage 'Build module 1'
sh "${mvnHome}/bin/mvn -f module-1/ clean install"
stage 'Build module 2'
sh "${mvnHome}/bin/mvn -f module-2/ clean install"
stage 'Build module 3'
sh "${mvnHome}/bin/mvn -f module-3/ clean install"
}
Maven baut die ersten 2 Module ohne Probleme. Aber am dritten Modul bekomme ich folgende Fehlermeldung:
Compilation failure
/var/lib/jenkins/workspace/.../MyClass.java:[136,44] cannot find symbol
symbol: method setStore(java.util.UUID,java.util.UUID,java.util.Date,int)
location: variable _storeService of type com.my.module3.interfaces.StoreService
ich rot habe, dass es ein Problem mit der Version von maven-compiler-plugin
sein kann, so dass ich es auf die neueste Version aktualisiert 3.5.1
, aber es hat nicht geholfen. gibt es keine Fehler
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>module3-${project.version}</finalName>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.my.module3.App</Main-Class>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Als ich das Modul in IntelliJ bauen:
Dies sind die Maven-Plugins, die ich in allen 3 der Module verwenden. Ich habe sogar das Repository in einen neuen Ordner gezogen und den Befehl mvn clean install
für das Modul3 verwendet und es wird ohne Probleme beendet.
Ich habe keine Ahnung, wo das Problem liegt. Es scheint nicht, dass etwas mit meinem Code falsch ist, wie es richtig funktioniert (ich habe es debuggt). Jede Hilfe oder Vorschläge würde sehr geschätzt werden.
Es scheint, die storeservice nicht die neueste Version ist. Weil Jenkin vor dem Aufbau den Quellcode auschecken muss. Sie sollten überprüfen: Der letzte Quellcode von Modul 3 wurde an Git übergeben? Wenn dies der Fall ist, können Sie zum Jenkins-Build-Ordner gehen und prüfen, ob die neueste Version des Modul 3-Quellcodes vorliegt. Wenn Sie auf Intelli .. bauen, war der Quellcode der neueste. So war der Build erfolgreich – NangSaigon
Der Code ist die neueste Version. Ich löschte sogar die 'git'-Zeile, kopierte den Code aus meinem dev-Ordner und fügte ihn in den Jenkins-Arbeitsbereich-Ordner ein. Auch ich habe die Dateien überprüft. Der Code ist da. –
Versuchen Sie den Ordner .m2 von Ihrem jenkins-Server zu entfernen. Auf diese Weise wird Jenkins den Download aller Ihrer Abhängigkeiten auslösen und Sie erhalten eine neue Version. Tatsächlich ist das Problem, auf das Sie gestoßen sind, ziemlich häufig. –