我已经使用 Jenkins 和build-pipeline-plugin为一个战争项目建立了一个构建管道。它由两个实际作业和一个部署在 Q&A 上的最终手动作业组成。
每个作业都配置为运行相同的项目,激活不同的配置文件。第一项工作 - 快速 - 是默认构建,编译源代码并运行单元测试。第二个作业 - 浏览器 - 运行基于 Selenium 的浏览器测试。第三个作业将战争文件部署到问答服务器。
每个作业都会产生一个新的战争文件,这让我感到困扰有两个原因:
- 即使只执行了所需的目标,例如在部署到问答时没有测试,构建仍然需要一点时间,因为 WAR 文件中有很多文件。
- 我们依靠 Jenkins 的内部版本号来找出工件来自哪个版本。到目前为止,它是来自“快速”工作的数字,但现在是来自“qa-deploy”工作的数字。
如何配置 Jenkins 和/或 Maven 以重用第一份工作的工件?
我更喜欢不改变整个项目结构的解决方案,因为我们的项目有一个单一的战争模块,拆分它意味着更多的工作来记录更改,并且将所有内容都放在一个地方更简单。