我必须管理多个项目,例如A1..A5和B1..B3。每个B取决于一组特定的As。所以我可以在每个A上然后每个B上手动启动Maven,以创建所有jar。在其中一个B中启动Maven甚至不会预编译所需的As。
是否有任何解决方案可以仅使用Maven而无需其他工具,例如Shell脚本或Ant?
为防止类似“将文件夹A移至文件夹B”这样的回答:所有文件夹都位于同一级别的一个目录中。之所以无法更改,是因为不同的团队正在处理此项目,并且每个项目都有自己的GIT存储库。
答案 0 :(得分:2)
您也许可以使它像这样工作:
<modules>
,并签入到单独的git存储库中在聚合器项目上开始构建时,Maven将根据所包含项目的依赖关系自动找出正确的构建顺序。
例如,给定以下依赖性:
B1 uses A1 and A2
B2 uses A2 and A3
B3 uses A3, A4 and A5
Maven可能会提出A1,A2,B1,A3,B2,A4,A5,B3的构建顺序。
使用Maven命令行选项,聚合器构建甚至可以以“重建A3及其使用的所有内容”或“重建B1所需的所有内容,然后重建B1本身”的形式启动。
但是,所有这一切都可能要求各个项目都从聚合器POM继承,这取决于您的POM外观,在您的情况下可能可行或不可行。
答案 1 :(得分:0)
如果As和B确实是不同的项目,则需要使用其他工具(例如Jenkins)来管理和编排构建。尤其是您将独立发行As和B,因此您将希望保持Maven构建独立。