在部署时覆盖Maven发布仓库

19

我正在开发一个开源库,并希望将发布版本发送到内部的 artifactory 服务器。我一直在使用 Maven 的 distributionManagement 并覆盖 altDeploymentRepository 来指向内部服务器(因此它从未出现在 pom 中)。当我执行 deploy:deploy 时,这个方法运行良好,但是当我使用 Maven 发布插件时,似乎被忽略了。

mvn clean -DaltDeploymentRepository=central::default::internalhost deploy ## works
mvn clean -DaltDeploymentRepository=central::default::internalhost release:perform ## fails, doesn't pick up this setting

当发布插件运行deploy时,如何通过命令行覆盖存储库?

你不能编辑POM文件来重新定义分发管理信息吗? - Duncan Jones
20
请执行以下命令:mvn release:perform -Darguments=-DaltDeploymentRepository=myvalue - yorkw
@yorkw 你应该将这个作为完整的答案发布,因为它是正确的。 - metasim
2
central::default::internalhost 是什么意思?它不应该像一些 URL 一样吗? - Lei Yang
3个回答

10

你怎么在其中传递用户名/密码? - old-monk
@old-monk 格式为“some-id:url”,服务器“some-id”的凭据在您的~/.m2/settings.xml文件中。 - MGP

6

mvn release:perform -Darguments=-DaltDeploymentRepository=myvalue

关键在于:"-Darguments"。

如果您使用的是maven-deploy-plugin 2.7版本,则可以参考yorkw的评论来解决这个问题。 如果您使用的是更高版本的maven-deploy-plugin(例如2.8),则需要使用参数altReleaseDeploymentRepository。

maven-deploy-plugin文档


-1
在你正在工作的版本中,你应该编辑 pom 文件来更改分发管理部分以使用你的内部仓库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接