从到本地仓库安装神器防止詹金斯从到本地仓库安装神器防止詹金斯(Prevent Jenkins fro

2019-05-12 11:41发布

詹金斯安装最近期建成神器到本地Maven仓库,甚至当工作与只有一个目标,执行clean package

这造成了一个问题,当有人不小心犯了共享库的更新版本不增加库的POM版本号。 詹金斯生成JAR,它安装到本地仓库,然后(根据配置)部署神器我们共同的Nexus仓库。 的Nexus相当正确地拒绝接受新的神器,因为它已经有一个给定的版本号的版本。

一段时间以后,詹金斯建立依赖于该库项目,并使用该库的副本从本地的仓库,而不是关系的影响。 因此,该项目得到了建有错误版本的代码。

看来有两种可能的解决方案:

  1. 错误地安装的.jar到本地仓库停止詹金斯
  2. 防止建设项目时使用依赖于该库的本地存储库

Answer 1:

它的安装目标是发布到本地仓库......所以我不回答了第一个问题。

第二个问题可以通过隔离每个版本来解决。 其配置为使用自己的本地资源库,使得在一个错误不影响他人:

mvn -s settings.xml compile package

在设置文件中声明的构建工作的本地仓库唯一路径

<settings>
  <localRepository>/data/job1/repository</localRepository>
  ..

而且它的probabily一个好主意,定期清除本地存储库,迫使清理构建。



Answer 2:

有一个在詹金斯作业配置使用私有仓库的设置。 这样就可以避免从詹金斯文物共建找到自己的方式到主存储库。 你需要打开扩展选项Maven构建看到的选项。



Answer 3:

我不知道是否有实际使用(共享)本地资源库,但关闭写入它的一个选项(即部署文物只有到远程存储库)。 这是为了减少并发更新的数量(但仍保持清醒的磁盘使用情况:)



Answer 4:

您可以防止重复文物被部署的Nexus。 每个工件应该有附加,以避免混淆内部版本号。 避免快照版本,因为它们会导致头痛。



文章来源: Prevent Jenkins from Installing Artifact to Local Maven Repository