Jenkins + Maven 插件问题:我希望 Jenkins 在由新版本的快照依赖项触发构建时运行“mvn test”,但在 SCM 更改触发构建时运行“mvn deploy”。我不知道该怎么做。
背景故事:我们有一个本土的 ant + ivy + jenkins 构建系统,我正试图弄清楚迁移到 Maven 的实用性。一般设置:
我们有几十个 Java 项目,它们之间有相当复杂的依赖链(几乎所有项目都依赖于几个正在积极开发的通用库)
所有项目都作为快照构建部署到常春藤存储库。所有依赖于内部项目的项目都依赖于该项目的当前快照版本。
当任何项目发生源更改时,jenkins 会选择 SCM 更改并部署新的快照版本。
当上游项目构建并部署新快照时,Jenkins 会在所有下游项目上运行测试,但不会部署。这是通过暗蚂蚁魔法完成的。
我很难使用 Jenkins 的 maven 插件来复制最后一点。我们不能在每次构建时都部署新快照,因为开发人员会花费大部分时间下载新的快照版本(每个项目每天构建数十次,因为一些上游项目正在非常活跃的开发中。)
关于如何配置 Jenkins 的 Maven 插件以在 SCM 更改和依赖项更改上运行不同目标的任何想法?