У меня есть проект Java, посвященный GitHub. Проект состоит из 3 модулей. Я сконфигурировал плагин Jenkins Workflow Multibranch Pipeline для создания трех модулей.Maven build не работает ТОЛЬКО при запуске с jenkins
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 строит первые 2 модуля без проблем. Но на третьем модуле я получаю следующее сообщение об ошибке:
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
У меня есть красный, что может быть проблема с версией maven-compiler-plugin
поэтому я обновил его до последней версии 3.5.1
, но это не помогло.
Это Maven плагины, которые я использую во всех 3 модулей:
<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>
Когда я строю модуль в IntelliJ нет никаких ошибок. Я даже вытащил репозиторий в новую папку и использовал команду mvn clean install
для модуля3, и она заканчивается без проблем.
Я понятия не имею, где проблема. Не похоже, что с моим кодом что-то не так, поскольку он работает правильно (я отлаживал его). Любая помощь или предложения были бы весьма признательны.
Кажется, что магазин не является последней версией. Потому что Дженкин должен проверить исходный код перед его созданием. Вы должны проверить: последний исходный код модуля 3 был передан Git? Если бы это было так, вы можете пойти в папку сборки Jenkins и проверить, получила ли она последнюю версию исходного кода модуля 3. Когда вы строите на Intelli .., исходный код был последним. Так что сборка прошла успешно – NangSaigon
Код - это последняя версия. Я даже удалил строку 'git', скопировал код из моей папки dev и вставил ее в папку рабочего пространства Jenkins. Также я проверил файлы. Код есть. –
Попробуйте удалить папку .m2 с вашего сервера jenkins. Таким образом, jenkins запускает загрузку всех ваших зависимостей, и вы получите новую версию. На самом деле проблема, с которой вы столкнулись, довольно часто встречается. –