3

我有一个 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 找到其他模块并构建项目的作业。??

4

3 回答 3

2

添加另一个聚合器。将 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>
于 2011-10-28T08:01:19.320 回答
1

一种解决方案是使用 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. 添加以下行: parentModul http://path.to.your.svn.location.of.parentModul
  5. svn ci -m "为父级添加外部"
  6. 快点

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

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

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

于 2013-03-28T14:08:14.610 回答
0

在我的情况下,不可能添加另一个父项目。ModulA 已经在 SVN 中独立于其他检查。

这表明您在moduleA输入该<modules>部分时可能是错误的。如果moduleA有不同的生命周期,那么您应该将其作为依赖项包含在内。

于 2011-10-28T14:15:22.977 回答