我在不同分支机构的同一个项目中有两个构建作业 - Live和Dev 两个pom文件都是相同的,我使用配置文件添加一个不同的远程存储库,用于存储每个分支的依赖项。例如,两个存储库中都存在工件core-SNAPSHOT.jar。
我遇到一个问题,即如果构建了Dev分支项目,并且Dev core-SNAPSHOT.jar已经更新,它将从Dev存储库下载并存储在本地存储库中。然后,如果构建了Live分支项目,它将使用本地core-SNAPSHOT.jar,因为这将比Live存储库中的最新版本更新。由于核心依赖是SNAPSHOT版本,每次项目构建时是否应该再次下载?
有没有办法告诉jenkins构建作业在每次构建时强制下载特定的依赖项,或者创建2个单独的本地存储库并将相关的构建作业指向每个?拥有特定于工作的存储库并不是很理想,因为我们在Dev和Live中有大约20个项目,所有项目共享相同的家属。
谢谢, 达米安
答案 0 :(得分:0)
看起来我自己已经弄清楚了。
对于任何可能感兴趣的人。我在Jenkins服务器上创建了单独的目录,并且我已根据分支将我的构建作业配置为使用不同的本地存储库。在Jenkins构建的“目标和选项”中,我添加了
-Dmaven.repo.local=/var/lib/jenkins/repositories/{branchSpecificRepository}/
这意味着如果我更新Dev分支中的任何内容,它将删除最新的Dev依赖项,如果我稍后构建Live项目,它们将继续使用旧的依赖项目。