【发布时间】:2011-08-05 08:26:57
【问题描述】:
我已经使用 Jenkins 和 build-pipeline-plugin 为一个战争项目建立了一个构建管道。它由两个实际作业和一个部署在问答中的最终手动作业组成。
每个作业都配置为运行同一个项目,激活不同的配置文件。第一项工作 - 快速 - 是默认构建,编译源代码并运行单元测试。第二个作业 - 浏览器 - 运行基于 Selenium 的浏览器测试。第三个作业将war文件部署到问答服务器。
每个作业都会产生一个新的战争文件,这让我感到困扰有两个原因:
- 即使只执行所需的目标,例如部署到问答时没有测试,构建仍然需要一点时间,因为 WAR 文件中有很多文件。
- 我们依靠 Jenkins 的内部版本号来找出工件来自哪个版本。到目前为止,它是来自“快速”工作的数字,但现在是来自“质量保证部署”工作的数字。
如何配置 Jenkins 和/或 Maven 以重用第一个作业中的工件?
我更喜欢不改变整个项目结构的解决方案,因为我们的项目有一个单一的战争模块,拆分它意味着更多的工作来记录更改,并且将所有内容都放在一个地方更简单。
【问题讨论】:
-
这是一个多模块构建吗?或者这是导致战争的单个模块(意味着包装战争)?特别是 selenium 测试是集成测试,所以最好是有一个带有集成测试的单独模块。
-
@khmarbaise:我们的项目只有一个战争模块
-
嗯。你如何与 selenium 进行集成测试? (通过集成测试阶段?通过 maven-failsave-plugin?)。我建议为此目的使用不同的模块。如果你有一个带有 war-module 和 it-module 的多模块构建,那么 it-module 可以使用 war-artifact 进行集成测试。也许你可以使用 cargo-plugin 来运行集成测试(部署到容器)..
标签: maven jenkins build-pipeline-plugin