我有多模块maven项目,主项目依赖于子模块。子模块的每个依赖关系都由以下版本定义:${pom.version}
。我使用Maven发布插件。如果我尝试准备发布,我有关于子模块版本丢失的错误。多模块应用程序maven
例子:
主要POM是1.0
版本,我尝试将其释放。 Maven将每个子模块构建到版本1.1
,然后尝试构建父代,然后崩溃。因为找不到sub-module-1.1
。
我不知道如何告诉maven构建,并立即安装到local-repo构建的每个子模块。我使用maven2。
我POM:
<modelVersion>4.0.0</modelVersion>
<groupId>com.voncuver</groupId>
<artifactId>voncuver</artifactId>
<packaging>pom</packaging>
<version>1.1-SNAPSHOT</version>
<name>multimodule</name>
<modules>
<module>mod1</module>
<module>mod2</module>
</modules>
(...)
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>mod1</artifactId>
<groupId>com.voncuver</groupId>
<version>${pom.version}</version>
</dependency>
<dependency>
<artifactId>mod2</artifactId>
<groupId>com.voncuver</groupId>
<version>${pom.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
(...)
您是否明确将每个子模块的版本设置为$ {pom.version}?版本属性继承自父... – 2012-08-13 14:41:04
首先你可以发布你的pom的(摘录是好的)此外不要使用pom.version更好的是project.version – khmarbaise 2012-08-13 14:43:13
发布插件会自动更新反应器内的依赖版本,所以实际上没有必要引用$ {project.version}也请记住,@khmarbaise表示$ {pom.version}不赞成使用$ {project.version} – 2012-08-14 08:10:05