在 Jenkins 中,在 maven 2 作业中,当我为作业检查“每当构建 SNAPSHOT 依赖项时构建”时,会添加两个上游作业。这些是正确的项目,但版本不正确(例如:5.0-SNAPSHOT 而不是 4.0.3-SNAPSHOT)。在构建的指纹列表中,可以清楚地看到使用的是 5.0-SNAPSHOT 版本。
目前,作为一种解决方法,我手动定义了工作关系。
什么会导致此类问题以及如何解决?上游作业检测的具体逻辑是什么?
编辑: pom 看起来像这样:
...
<packaging>pom<packaging>
<modules>
<module>mod1</module>
...
<module>mod20</module>
</modules>
<properties>
<project.B.version>5.0-SNAPSHOT</project.B.version>
...
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>project.B.group</groupId>
<artifactId>Bartifact</artifactId>
<version>${project.B.version}</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
然后是模块 mod1:
<parent>...</parent>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>project.B.group</groupId>
<artifactId>Bartifact</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
此外,可能值得一提的是,我为所有这些项目创建了两次工作,针对 2 个不同的版本。所以有工作:
- main-5.0-SNAPSHOT
- B-5.0-快照
- main-4.0.3-SNAPSHOT
- B-4.0.3-快照
并且由于某种原因 main-5.0-SNAPSHOT 将 B-4.0.3-SNAPSHOT 作为上游项目,而 main-4.0.3-SNAPSHOT 将 B-5.0-SNAPSHOT 作为上游项目。这很奇怪。