6

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

parentProject
+-pom.xml

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

libraryA
+-pom.xml

libraryB
+-pom.xml

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

<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.xml 的聚合优势。

4

2 回答 2

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”

于 2012-10-29T15:41:00.430 回答
0

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

于 2012-09-27T05:04:06.503 回答