0

Jenkins + Maven 插件问题:我希望 Jenkins 在由新版本的快照依赖项触发构建时运行“mvn test”,但在 SCM 更改触发构建时运行“mvn deploy”。我不知道该怎么做。

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

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

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

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

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

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

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

4

2 回答 2

0

仅仅创建两个独立的 Jenkins 作业——用于测试和部署怎么样?

于 2013-10-22T15:55:29.830 回答
0

几年后结束这个问题的循环——

事实证明,重新下载 jars 并没有我想象的那么大。通常开发人员只使用 intellij,在这种情况下他们根本不需要解析快照,或者使用 -o 进行离线模式,除非他们真的需要使用最新的 jar 进行部署。所以毕竟没有很多时间被浪费在下载上。

所以我仍然不知道如何做到这一点,但可能不值得尝试弄清楚。

于 2015-04-27T02:47:56.700 回答