是否有更简单的方法强制maven在模块之前构建父级?
用例: 我试图了解解决以下问题的最佳做法是什么
我有两个项目,我将其命名为'A'和'B' 他们都有一个父母,我将其命名为'P'
'P'具有共享资源的依赖关系管理,这将允许对共享工件使用相同的版本。
'P'也用于运行'A'和'B'作为模块。
问题: 添加新工件时,我将在'P'中添加版本,在'A'中添加依赖项(例如)。现在,在进行maven clean安装时,我的'dependencies.dependency.version'缺失了。
这是因为maven首先在自己之前构建模块,然后'A'没有版本。
我知道我可以在下面输入'A'pom: ../ 它有效(但并非总是如此)。
回到我的问题:是否有更简单的方法强制maven在模块之前构建父级?
答案 0 :(得分:1)
我发现我的问题不仅仅是上面提到的相对路径,而是我的父pom版本是变量$ {version}并且在构建期间没有被替换。
为了解决这个问题,我硬编码在父POM中编写了父版本。
答案 1 :(得分:0)
在你的情况下,就是模块'parent == modules'聚合器的情况,Maven应该在模块之前构建父模块,只要它们在同一个构建反应器中,这通常意味着你应该从模块中构建所有模块。 P
项目级别。即使你不这样做,如果你有适当的<relativePath
&gt;,父母应该得到解决。模块“<parent>
中的pom.xml
块中的标记(例如,查看here)。默认情况下,此处有..
值,表示工件的父级位于文件系统的父目录中。