在多个Jenkins / Hudson作业中重用相同的Maven工件

时间:2011-08-05 08:26:57

标签: maven jenkins build-pipeline-plugin

我使用Jenkins和build-pipeline-plugin为war项目设置了构建管道。它由两个实际工作和一个最终手工工作组成,在Q& A上部署。

Build pipeline

每个作业都配置为运行相同的项目,激活不同的配置文件。第一个作业 - 快 - 是默认构建,编译源和运行单元测试。第二项工作 - 浏览器 - 运行基于Selenium的浏览器测试。第三个作业将war文件部署到Q& A服务器。

每个作业都会产生一个新的战争文件,这有两个原因困扰我:

  1. 即使只执行了所需的目标,例如在部署到Q& A时没有测试,构建仍然需要一点时间,因为WAR文件中包含大量文件。
  2. 我们依靠Jenkins的内部版本号来找出工件的构建版本。到目前为止,它是来自“快速”工作的数字,但现在它是来自“qa-deploy”工作的数字。
  3. 如何配置Jenkins和/或Maven重用第一份作业中的工件?

    我更喜欢一个不会​​改变整体项目结构的解决方案,因为我们的项目只有一个war模块,拆分它意味着更多的工作来记录变化,并且将所有内容放在一个位置更简单。

2 个答案:

答案 0 :(得分:2)

您可以拥有一个构建.war的项目,然后使用Copy Artifact Plugin here将其从该项目复制到依赖项目中。

答案 1 :(得分:1)

我真的建议将其拆分为两个模块,并让集成测试声明对war模块的依赖,它也可能包含部署操作。

这是一种更灵活的方法,而不是那么多努力。