Maven-build schlägt fehl, NUR bei der Ausführung mit jenkins

Ich habe ein Java-Projekt, das sich auf GitHub. Das Projekt besteht aus 3 Modulen. Ich habe die Konfiguration des Jenkins-Workflow Zweigstellen der Pipeline plugin zu bauen, die 3 Module.

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 den ersten 2 Modulen mit kein problem. Aber auf das Dritte 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 habe rot, dass es möglicherweise ein problem mit der version von maven-compiler-plugin so dass ich aktualisiert auf die neueste 3.5.1 version, aber es hat nicht geholfen.

Diese sind der maven-plugins, die ich benutze für alle 3 Module:

    <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>

Wenn ich Baue das Modul in IntelliJ gibt es keine Fehler. Ich selbst zog das repository in einen neuen Ordner und verwendet die mvn clean install Befehl für das module3 und es beendet, ohne ein problem.

Ich habe keine Ahnung, wo das problem ist. Es scheint nicht, dass es etwas falsch mit meinem code, wie es funktioniert einwandfrei (ich habe es ausgetestet). Jede Hilfe oder Anregungen würde sehr geschätzt werden.

  • Es scheint, die storeservice ist nicht die neueste version. Da Jenkin muss die Kasse den Quellcode vor dem Gebäude. Sie sollten überprüfen: aktuelle source-code von Modul 3 wurde verpflichtet Git? Wenn es war, können Sie gehen, um Jenkins build-Ordner und überprüfen Sie, wenn es die Letzte version des Moduls 3 source code. Wenn Sie bauen auf Intelli.., wurde der Quellcode der neuesten. So das kompilieren erfolgreich war
  • Der code ist die neueste version. Ich selbst gelöscht, die git Zeile, kopiert den code von meinem dev-Ordner und klebte es in die Jenkins workspace-Ordner. Auch überprüfte ich die Dateien. Der code ist da.
  • Versuchen Sie es entfernen .m2 Ordner vom jenkins-server. So jenkins löst das herunterladen aller Ihrer Abhängigkeiten, und Sie gut erhalten neue version. Eigentlich problem, das Sie gestoßen sind, ist durchaus üblich.
  • Danke. Dies das problem behoben. Können Sie schreiben, eine Antwort, so kann ich es markieren?

 

2 Replies
  1. 2

    Versuchen zu entfernen .m2 Ordner vom jenkins-server. So jenkins löst das herunterladen aller Ihrer Abhängigkeiten, und Sie gut erhalten neue version. Eigentlich problem, das Sie gestoßen sind, ist durchaus üblich.

    • Nur noch eine Frage. Muss ich löschen .m2-Ordner vor jedem bauen? Es scheint ganz überflüssig.
    • Nee. Löschen Sie es einfach einmal so kommen Sie zu neuen Abhängigkeiten. Maven ist ein bisschen schwierig, wenn Sie zum Beispiel snapshot-Versionen können Sie am Ende mit einer falschen version von deinem Modul, wenn Sie nicht vorsichtig sind. Auch, wie @João Marcos bereits erwähnt hat, die ich auch halten „Arbeitsbereich Löschen“ vor dem bauen beginnt (option aktiviert). Zuerst müssen Sie installieren „Arbeitsbereich Cleanup Plugin“ unter „jenkins verwalten -> verwalten-plugins“
    • Danke. Ich wusste nicht über das plugin. Das problem ist, dass ich mit dem Workflow Zweigstellen der Pipeline plugin und es scheint, dass es keinen „Arbeitsbereich Löschen“ – option.
  2. 0

    Können Sie wählen Sie die option „Arbeitsbereich Löschen“ vor dem Bau beginnt“ in der Build-Umgebung-Konfiguration.

    Diese option ist zugänglich nach der Installation „Arbeitsbereich Cleanup Plugin“

    • Wo ist die Lage dieser Einstellung? Ich habe aktiviert das „löschen von alten Objekten“ – Einstellung, aber ich kann nicht finden, eine, die Sie sprechen.
    • Öffnen Sie die build-Konfiguration, stellen Sie STRG+F und suchen Sie Sie. Dies ist im inneren „Bauen, Umwelt“ Optionen
    • Possibli nach der Installation dieses: wiki.jenkins-ci.org/display/JENKINS/Workspace+Cleanup+Plugin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.