我以平面结构的方式组织了以下项目:
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的聚合优势。
答案 0 :(得分:1)
看起来你要求你的父母POM做两件事:
如果将它分成两个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”/“构建其他项目后构建”