Maven发布插件,带有来自命令行的分类器快照依赖项

时间:2012-11-15 21:00:05

标签: maven command-line maven-release-plugin

我正在尝试以批处理模式从命令行运行maven release插件,以获得具有使用分类器部署到maven存储库的依赖关系的多模块项目。

release:prepare在不处于批处理模式时正常工作,并提示所有未解析的快照依赖项,包括具有分类器且发布成功完成的快照依赖项。

当我查看release.properties文件时,我看到......

常规依赖标识为

project.rel.groupIdXYZ:artifactIdXYZ=2.0.3.4
project.dev.groupIdXYZ:artifactIdXYZ=2.0.3.4-SNAPSHOT

分类器依赖关系标识为

dependency.groupIdABC:artifactIdABC.release=2.0.3.4
dependency.groupIdABC:artifactIdABC.development=2.0.3.4-SNAPSHOT

没有实际的分类器ID。

现在我通过命令行尝试使用命令行,如...

mvn --batch-mode -P release,nexus -Dtag=rm2.0.3.4 -Dproject.rel.groupIdXYZ:artifactIdXYZ=2.0.3.4 -Dproject.dev.groupIdXYZ:artifactIdXYZ=2.0.3.4-SNAPSHOT -Ddependency.groupIdABC:artifactIdABC.development=2.0.3.4-SNAPSHOT -Ddependency.groupIdABC:artifactIdABC.release=2.0.3.4 -DreleaseVersion=2.0.3.4 -DdevelopmentVersion=2.0.3.4-SNAPSHOT -DdryRun=true release:prepare

并获取

Can't release project due to non released dependencies :
groupIdABC:artifactIdABC:jar:classifierIdABC:2.0.3.3-SNAPSHOT:compile

我已经验证了分类器工件在我当地的maven repo我们的公司中央maven repo。我已经尝试将分类器工件指定为

-Dproject.rel.groupIdABC:artifactIdABC:jar:classifierIdABC=2.0.3.4

仍然是同样的错误。

任何能够从命令行运行此命令的指针都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

如果您将allowTimestampedSnapshots属性设置为true,该怎么办?它仍然会抛出错误吗?

答案 1 :(得分:0)

maven-release-plugin要求所有依赖版本都是非SNAPSHOT ...原因很明显。必须是最终版本。

如果您知道您的依赖项确实有非SNAPSHOT版本,(您之前发布过它们),那么您可以使用versions-maven-plugin自动更新pom.xml

mvn versions:use-latest-versions -DallowSnapshots=false -Dincludes=com.my.*

并防止release-plugin抱怨对pom.xml的未提交更改...

 mvn release:prepare ... -DcheckModificationExcludeList=pom.xml