【发布时间】:2013-12-03 09:25:43
【问题描述】:
我正在使用 Maven 3.1.1 并尝试使用 Maven 发布插件来发布多模块项目的子模块。父模块已发布,并且此子模块不在父模块的子模块列表中。在我的子模块 pom.xml 文件中,我有
<parent>
<artifactId>subco</artifactId>
<groupId>org.mainco.subco</groupId>
<version>52.0.0-SNAPSHOT</version>
</parent>
<name>myproject</name>
<url>http://maven.apache.org</url>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mainco.subco</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencyManagement>
<dependencies>
...
<dependency>
<groupId>org.mainco.subco</groupId>
<artifactId>core</artifactId>
</dependency>
但是,当我运行以下内容时
mvn -B -DdevelopmentVersion=52.0.1-SNAPSHOT -DreleaseVersion=52.0.0 -Dusername=***** -Dtag=myproject-52.0.0 -DskipTests -P prod -Dresume=false -DdryRun=true -DallowTimestampedSnapshots=true org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare
我得到错误
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project myproject: Can't release project due to non released dependencies :
[ERROR] org.mainco.subco:core:jar:52.0.0-SNAPSHOT:compile
...
[ERROR] org.mainco.subco:subco:pom:52.0.0-SNAPSHOT
我无法更改父 pom.xml 文件中的任何属性……我可以在子模块中做些什么来使上述命令成功运行吗?我喜欢使用“${project.version}”,因为我不必在我的 pom.xml 中硬编码版本。另请注意,我正在使用被忽略的“-DallowTimestampedSnapshots=true”。
编辑:
甚至在 pom 中添加一个单独的版本元素,就像这样
<parent>
<artifactId>subco</artifactId>
<groupId>org.mainco.subco</groupId>
<version>52.0.0</version>
</parent>
<name>myproject</name>
<url>http://maven.apache.org</url>
<version>52.0.0-SNAPSHOT</version>
导致与上述相同的错误。
【问题讨论】:
-
您使用的是最新版本的发布插件吗?
标签: maven dependencies snapshot release-management maven-release-plugin