【问题标题】:How to split a Maven multi-module build into multiple Jenkins build jobs?如何将 Maven 多模块构建拆分为多个 Jenkins 构建作业?
【发布时间】:2017-08-03 19:03:18
【问题描述】:

让我们考虑一个多模块项目,它由模块 A、B、C、D、E 组成。它们之间的依赖关系是

  • C 依赖于 B; B 取决于 A
  • E 依赖于 D; D 取决于 B

我想把它分成两个 Jenkins 构建

  • 构建 1:构建 C 及其依赖项,即-pl :C -am
  • 复制 Jenkins 工作区
  • Build 2:利用 Build 1 构建的 B.jar 构建 E、D

我无法找到一种方法来告诉 Maven 执行“构建 2”。这是一个简化的场景,但在我的例子中,有几个模块,而不仅仅是 5 个。

【问题讨论】:

  • 如果您有正确配置的多模块构建,您只需在项目结构的根级别调用mvn clean deploy 。如果您想在您的 Jenkins 作业中调用子模块,这听起来像是您的构建中存在问题...

标签: maven jenkins


【解决方案1】:

您可以使用 -pl 选项来定位特定模块。 http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html.

不过,通常我看不到这样做 - 如果一个项目是多模块的,通常人们只是从父项的 CI 调用 maven 并让 maven 负责构建所有内容,而不是在 CI 工具中进行复制有关已定义为 Maven 的项目内部的依赖项/子组件的知识。如果特定模块构建存在问题,Jenkins 仍会在构建日志中公开该问题。

【讨论】:

  • 谢谢。 -pl-am 将有助于“构建 1”。但我不确定如何使用这些反应器选项对“Build 2”进行建模。
猜你喜欢
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2016-10-30
  • 2014-10-30
  • 2014-05-22
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多