5

我正在尝试以批处理模式从命令行运行 maven 发布插件,用于一个多模块项目,该项目具有使用分类器部署到 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 存储库中,我们的公司中央 maven 存储库中。我尝试将分类器工件指定为

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

仍然是同样的错误。

任何能够从命令行运行它的指针将不胜感激。

4

2 回答 2

0

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

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

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

并防止发布插件抱怨对 pom.xml 的未提交更改...

 mvn release:prepare ... -DcheckModificationExcludeList=pom.xml
于 2015-02-11T22:56:28.863 回答
0

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

于 2014-01-30T10:48:32.820 回答