Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration 如何为多模块maven项目配置Jenkins_Configuration_Maven_Jenkins_Multi Module - Fatal编程技术网

Configuration 如何为多模块maven项目配置Jenkins

Configuration 如何为多模块maven项目配置Jenkins,configuration,maven,jenkins,multi-module,Configuration,Maven,Jenkins,Multi Module,我有一个maven多模块项目。结构如下所示: -modulA (Main project) - pom.xml -parentModul (Aggregator) - pom.xml - ModulB (Integration Test Project) -pom.xml 包定义如下: <project ...> <modules> <module>../modulA</modul

我有一个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
模B


其中一个模块(ModulA)具有相同的层次结构级别,另一个位于父模块中。 我尝试在Jenkins中添加一个作业来自动构建所有。(清洁包装)


如何配置parentModul查找其他模块并构建项目的作业。?

添加另一个聚合器。将modulA和ParentModula放在同一目录中,并在其上一级,只需添加另一个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中进行了检查


这表明您在
部分中放置
模块a
可能是错误的。如果
moduleA
具有不同的生命周期,那么您应该将其作为一个依赖项包含进去。

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

根据您的SVN结构和所需的工作空间结构,有几种方法可以做到这一点:

  • svn余模
  • cd模块a
  • svn propedit svn:externals.
    NB:注意行末的(curdir)点
  • 添加以下行: 父模块
  • svn ci-m“为父级添加外部”
  • svn向上
  • svn将检索(并提交)您的代码到以下工作区结构

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

    或者,您可以向SVN“workplace”添加一个新目录,并在其中添加新的pom.xml,然后通过SVN externals将您可能需要的所有模块都添加到一个级别(或多个级别)

    听了你的评论,我有点不知所措。“ModuleA”具有相同的层次结构级别”-与哪个相同?pom片段来自“parentModule”,对吗?如果“ModuleA”单独签入SVN,为什么要用“parentModule”编译它"? 最后:您的错误消息到底是什么?您始终可以在SVN中重新构造/重构目录。在我看来,你所做的似乎不正确。