如何在源更改和更新的快照依赖项上运行不同的Maven目标

时间:2013-10-22 14:36:46

标签: jenkins jenkins-plugins

Jenkins + Maven插件问题:我希望Jenkins在新版本的快照依赖项触发构建时运行“mvn test”,但是当SCM更改触发构建时,“mvn deploy”。我无法弄清楚如何做到这一点。

背景故事:我们有一个本土的ant + ivy + jenkins构建系统,我正在试图找出迁移到Maven的实用性。一般设置:

  • 我们有几十个Java项目,它们之间有相当复杂的依赖链(几乎所有项目都依赖于几个正在积极开发的通用库)

  • 所有项目都将快照构建部署到常春藤存储库。依赖于内部项目的所有项目都取决于该项目的当前快照版本。

  • 当任何项目有源更改时,jenkins会选择SCM更改并部署新的快照版本。

  • 当上游项目构建和部署新快照时,Jenkins会对所有下游项目运行测试但不进行部署。这是通过暗蚂蚁魔法完成的。

我很难用Jenkin的maven插件复制最后一点。我们无法在每个构建上部署新快照,因为开发人员大部分时间都会花费大量时间来下载新的快照版本(每个项目每天构建数十次,因为一些上游项目正处于非常活跃的开发阶段。)

有关如何配置Jenkins的maven插件以在SCM更改与依赖项更改上运行不同目标的任何想法?

2 个答案:

答案 0 :(得分:0)

如何创建两个单独的Jenkins作业 - 用于测试和部署?

答案 1 :(得分:0)

几年后关闭这个问题的圈子 -

事实证明,重新下载罐子并不像我想象的那么大。通常开发人员只使用intellij,在这种情况下他们根本不需要解析快照,或者使用-o作为离线模式,除非他们确实需要使用最新的jar进行部署。因此,毕竟不会浪费很多时间来下载。

所以我仍然不知道如何做到这一点,但可能不值得尝试解决这个问题。