我在Jenkins上打包maven模块时遇到问题。当我在本地打包模块时不会发生此问题。我有一个模块,为了这篇文章可以称为 moduleA 。我还有一个通用模块,其中包含 moduleA 和 moduleB 使用的对象。此模块的名称是 common 。我在 moduleA pom.xml中有 common 的依赖项列表。该项目还包含从我们的私有nexus存储库中获取的依赖项。正在发生的问题是,当maven下载Jenkins的所有依赖项时,它正在寻找Nexus repo上的 common 。以下是一些相关信息。 有没有办法解决这个问题,除了将公共模块部署到Nexus 之外?
Maven Command
mvn -pl sub_module_name package -X -U --also-make-dependents
POM中的存储库
<repository>
<id>nexus-snapshots</id>
<url>${our.nexus.instance}</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<repository>
<id>nexus-releases</id>
<url>${our.nexus.instance}</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
<repository>
<id>central</id>
<name>Maven Central Repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
Jenkins错误消息
[ERROR] Failed to execute goal on project moduleA: Could not resolve
dependencies for project my.artifact:moduleA:jar:1.0.01-
SNAPSHOT: Could not find artifact my.artifact:common:jar:1.0.01-
SNAPSHOT in nexus-snapshots
({our.nexus.instance}) ->
[Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
execute goal on project moduleA: Could not resolve dependencies for project
my.artifact:moduleA:jar:1.0.01-SNAPSHOT: Could not find
artifact my.artifact:common:jar:1.0.01-SNAPSHOT in nexus-
snapshots ({our.nexus.instance})
答案 0 :(得分:2)
我认为问题出在你的maven命令中。我建议您将命令更改为以下
enum
这可确保在打包moduleA之前安装公共模块。