4

我已经使用 Jenkins 和build-pipeline-plugin为一个战争项目建立了一个构建管道。它由两个实际作业和一个部署在 Q&A 上的最终手动作业组成。

构建管道

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

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

  1. 即使只执行了所需的目标,例如在部署到问答时没有测试,构建仍然需要一点时间,因为 WAR 文件中有很多文件。
  2. 我们依靠 Jenkins 的内部版本号来找出工件来自哪个版本。到目前为止,它是来自“快速”工作的数字,但现在是来自“qa-deploy”工作的数字。

如何配置 Jenkins 和/或 Maven 以重用第一份工作的工件?

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

4

2 回答 2

2

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

于 2011-08-13T03:03:53.997 回答
1

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

这是一种更灵活的方法,而且不需要太多的努力。

于 2011-08-05T10:55:38.007 回答