Maven多模块项目和Jenkins

时间:2012-09-26 23:43:05

标签: java maven jenkins multi-module

我以平面结构的方式组织了以下项目:

parentProject
+-pom.xml

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

libraryA
+-pom.xml

libraryB
+-pom.xml

parentProject中的pom.xml引用了其他模块及其用于继承和dependencyManagement,这里是一个片段:

<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即可启动,但这种情况并未发生。 谁知道我做错了什么?

提前致谢。

修改

当我从modules中删除parentProject\pom.xml部分时,它会起到预期效果,但我放弃了拥有父pom的聚合优势。

2 个答案:

答案 0 :(得分:1)

看起来你要求你的父母POM做两件事:

  1. 设置依赖关系管理内容
  2. 汇总您的构建
  3. 如果将它分成两个pom - 一个是#1的父pom和一个#2的聚合pom,通常会更好。那你就有了......

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

    有关详细信息,请参阅此答案:https://stackoverflow.com/a/3301162/211993

    然后你配置Jenkins检查根目录并运行“mvn clean install”

答案 1 :(得分:0)

这应该在jenkins工作中配置。请参阅“libraryA job”/“Configuration”/“Build Triggers”/“构建其他项目后构建”