3

有没有更简单的方法可以强制 maven 在模块之前构建父级?

用例:我试图了解解决以下问题的最佳实践是什么

我有两个项目,我将命名为“A”和“B”他们都有一个父项目,我将命名为“P”

“P”对共享资源有一个依赖管理,这将允许对共享工件使用相同的版本。

“P”也用于将“A”和“B”作为模块运行。

问题:添加新工件时,我在“P”中添加版本,在“A”中添加依赖项(例如)。现在在进行 Maven 全新安装时,我得到 'dependencies.dependency.version' is missing for .

这是因为 maven 首先在他自己之前构建它的模块,然后“A”没有版本。

我知道我可以在以下内容下放入“A”pom:../ 并且它有效(但并非总是如此)。

回到我的问题:有没有一种更简单的方法可以强制 maven 在模块之前构建父级?

4

2 回答 2

1

我发现我的问题不仅是上面提到的相对路径,而且我的父 pom 版本是一个变量 ${version} 并且在构建期间没有被替换。

为了解决这个问题,我硬编码在父 POM 中编写了父版本。

于 2012-07-05T08:47:41.857 回答
0

在您的情况下,这就是模块的父级 == 模块的聚合器的情况,只要它们位于同一个构建反应器中,Maven 就应该在其模块之前构建父级,这通常意味着您应该从P项目级别构建所有模块。即使你不这样做,如果你在模块<relativePath中的块中有适当的 > 标签,父母也应该得到解决(例如看这里)。默认情况下,那里有值,这意味着工件的父级位于文件系统的父目录中。<parent>pom.xml..

于 2012-06-19T12:21:14.120 回答