【问题标题】:Maven multi-module project and JenkinsMaven 多模块项目和 Jenkins
【发布时间】:2012-09-18 16:33:15
【问题描述】:

我有以下以扁平结构方式组织的项目:

parentProject
+-pom.xml

projectWeb <depends on libraryA and libraryB>
+-pom.xml

libraryA
+-pom.xml

libraryB
+-pom.xml

parentProject 中的 pom.xml 引用了其他模块,并用于继承和依赖管理,这里是一个 sn-p:

<project>
    ....
    <modules>
        <module>../projectWeb</module>
        <module>../libraryA</module>
        <module>../libraryB</module>
    </modules>
    <dependencyManagement>
    ...
    </dependencyManagement>
    <build>
    ...
    </build>
    ....
</project>

Jenkins 中,每个项目都有一个 maven 工作,当我构建 parentProject 时它工作正常,即。构建modules 部分中引用的每个项目。 我遇到的问题是,当我向 SVN 提交 libraryA 的更改时,我希望在构建 libraryA 之后,将启动对 projectWeb 的重建,但这并没有发生。 有谁知道我做错了什么?

提前致谢。

编辑

当我从 parentProject\pom.xml 中删除 modules 部分时,它可以正常工作,但我失去了拥有父 pom 的聚合优势。

【问题讨论】:

    标签: java maven jenkins multi-module


    【解决方案1】:

    您似乎要求您的父 POM 做两件事:

    1. 设置依赖管理的东西
    2. 聚合您的构建

    如果你把它分成两个 pom 通常会更好——#1 的父 pom 和#2 的聚合 pom。然后你会有类似的东西..

    [root dir] aggregate pom.xml
    + /parent 
    + /web
    + /libA
    + /libB
    

    更多详情请查看此答案:https://stackoverflow.com/a/3301162/211993

    然后您需要配置 Jenkins 以检查根目录并运行“mvn clean install”

    【讨论】:

    • 您能否详细说明为什么“拆分通常会更好……”?我不是说它不是,但我不明白为什么它更好。不幸的是,我从您链接的答案中无法理解。谢谢!
    • 因此,最初,它只是有助于分离关注点 - 聚合器负责构建模块的顺序,父级负责依赖版本以及诸如 scm 连接细节之类的事情。
    • 另外,我见过一些例子,人们将他们的父 pom 分解成公共部分,然后成为其他父 pom 的父级。比如说,你有几个使用 Hibernate 的项目,你可以将那一堆版本控制拉到一个 hibernate 父 pom 中,然后将其用作“超级父级”(实际上,我只是编造了这个短语) 为您提供跨多个未链接的项目的一致版本的休眠库。但请确保您确实想要这种共享方法;您将多个项目耦合在一起,这可能是不可取的。
    • 或者,您可能会闯入一群永远不会共享的超级父母,您只是为了可读性而这样做。老实说,我从来没有比单亲和单聚合器更进一步,但我确实发现它比双亲和聚合器合二为一。
    【解决方案2】:

    这应该在 jenkins 作业中配置。参见“libraryA job”/“Configuration”/“Build Triggers”/“Build after other projects are built”

    【讨论】:

    • 感谢您的回复,但正如我在编辑后的问题中提出的那样,如果我从父 pom 中删除模块,则会按预期触发构建,即,如果我构建 libraryA 然后 @987654322 @ 是自动构建的,没有你提到的配置。
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 2021-09-04
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多