【发布时间】:2017-07-26 12:41:09
【问题描述】:
我有一个 multimodule(module1,module2,module3) 项目,它有一个聚合器 pom 来构建所有模块。
现在反应堆的建造顺序是
module1
module2
module3
另外,module2 依赖于 module1,module3 依赖于 module2,现在考虑到依赖关系,我使用 ${project.version} 在 module2 pom 中指定 module1 的版本,同样我使用的是 ${project.version}在模块 3 pom 中引用模块 2。现在快照作业已成功执行,但是当我尝试使用聚合器 pom(这是所有模块的父 pom)释放所有模块时,构建失败,说它无法发布项目由于到未发布的依赖项。有没有办法解决这个问题?
我正在为该项目使用 Maven 3.0.4 maven-release-plugin:2.0-beta-8。 此外,module2 必须使用最新版本的 module1,这对于 module3 和 module2 也是如此。并且有必要将它们一起发布,因为我希望只有在所有模块都成功构建后才能发布它们。
parent pom
<project>
<groupid>com.mycompany</groupid>
<artifactid>parent</artifactid>
<version>1.0.0</version>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
..
</project>
module1 pom
<project>
<parent>
<groupid>com.mycompany</groupid>
<artifactid>parent</artifactid>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupid>com.mycompany</groupid>
<artifactid>module2</artifactid>
<dependencies>
..
..
</dependencies>
module2 pom
<project>
<parent>
<groupid>com.mycompany</groupid>
<artifactid>parent</artifactid>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupid>com.mycompany</groupid>
<artifactid>module2</artifactid>
<dependencies>
<dependency>
<groupid>com.mycompany</groupid>
<artifactid>module1</artifactid>
<version>${project.version}</version>
</dependency>
..
..
..
</dependencies>
..
</project>
【问题讨论】:
-
您正在使用 Maven 和发布插件的古老版本。如果可能的话,我会在您进一步排除故障之前进行更新。
标签: maven maven-3 maven-release-plugin