【问题标题】:How to configure Jenkins for a multi-module maven project如何为多模块 Maven 项目配置 Jenkins
【发布时间】:2011-10-28 07:28:33
【问题描述】:

我有一个 Maven 多模块项目。结构如下:

-modulA         (Main project)
   - pom.xml
-parentModul    (Aggregator)
   - pom.xml
   - ModulB     (Integration Test Project)
       -pom.xml

包定义如下:

<project ...>
<modules>
    <module>../modulA</module>
    <module>ModulB</module>
</modules>


其中一个模块(ModulA)具有相同的层次结构,另一个在父模块中。 我尝试在 Jenkins 中添加一个工作来自动构建。 (干净的包装)..

应该如何配置 parentModul 找到其他模块并构建项目的作业??

【问题讨论】:

  • 听完你的 cmets 我有点迷路了。 “ModuleA”具有相同的层级” - 与which相同?pom片段来自“parentModul”,对吗?如果“ModuleA”单独签入SVN,为什么要编译它与“ parentModule"?最后:你的错误信息到底是什么?

标签: configuration maven jenkins multi-module


【解决方案1】:

添加另一个聚合器。将 modulA 和 parentModul 放在同一个目录并在它们之上一层,只需像这样添加另一个 pom:

aggregator/
|- modulA/
|  |- pom.xml
|- parentModul/
|  |- modulB/
|  |  |- pom.xml
|  |- pom.xml
|- pom.xml

在 aggregator/pom.xml 中定义一个模块部分如下:

<project ...>
    <modules>
        <module>modulA</module>
        <module>parentModul</module>
    </modules>
</project>

【讨论】:

  • 您可以随时重构/重构 SVN 中的目录。在我看来,您所做的似乎不正确。
【解决方案2】:

一种解决方案是使用 SVN Externals 从疯狂的 SVN 结构甚至跨不同的 svn 服务器组装健全的 Maven 项目工作区。使用 svn external 不是一个理想的解决方案,因为它会导致 maven 发布插件和 CI 的 SCM 轮询在某些配置中出现问题。他们告诉你:“你不应该使用 svn externals”,因为这会让生活变得更加困难。但是腿部石膏和拐杖也是如此,但是当您摔断了腿(或 svn 结构即 fubar)时,您真的不介意带来不便。

有几种方法可以做到这一点,具体取决于您的 SVN 结构和所需的工作空间结构:

  1. svn co modulA
  2. cd modulA
  3. svn propedit svn:externals . 注意:注意行尾的(curdir)点!
  4. 添加以下行: 父模块http://path.to.your.svn.location.of.parentModul
  5. svn ci -m "为父级添加外部"
  6. svn

svn 检索(并提交)您的代码到以下工作区结构

modulA/
|  |- pom.xml
parentModul/
|- modulB/
|  |- pom.xml
|- pom.xml
pom.xml

或者您可以向 SVN 'workplace' 添加一个新目录并在其中添加新的 pom.xml 并通过 svn externals 将您可能想要的所有模块添加到一个级别(或多个级别)。

【讨论】:

    【解决方案3】:

    就我而言,无法添加另一个父项目。 ModulA 已经在 SVN 中独立于其他检查。

    这表明您将moduleA 放入&lt;modules&gt; 部分可能是错误的。如果moduleA 有不同的生命周期,那么你应该把它作为一个依赖包含进来。

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2017-09-21
      • 1970-01-01
      • 2016-04-16
      • 2017-12-26
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多