我有一个 Java 应用程序,我想遵循典型的 Maven 发布周期,但我不想或不需要将应用程序推送到 Nexus(或 Maven Central)。
当我跑步时
mvn release:prepare release:perform -Darguments="-DskipTests=true -Dmaven.javadoc.skip=true"
我在执行阶段收到一个错误,说 pom.xml 文件缺少将构建的工件推送到 NEXUS(我们的内部 Maven 仓库)所需的
<distributionManagement>
定义。
我正在使用 git,当我使用
git log
时,我可以看到我想执行的所有其他步骤都已正确执行。
所以……一切看起来都不错。 我想做的就是告诉 maven 不要尝试进行推送,以便命令完成而不会出错。 注意:
release:prepare
的几个文件被遗留下来,一个是 release.properties
,但如果有必要,我可以忍受手动删除它。
我正在寻找的一些解决方案是:
release:perform
,然后只运行release:prepare
。我现在正在测试这个。我已经在寻找以上所有问题的解决方案,但还没有找到答案。
Maven 发布插件
maven 发布插件文档位于 http://maven.apache.org/maven-release/maven-release-plugin/plugin-info.html。 看来我不想使用
release:perform
基于阅读这个!
release:perform
目标的文档。 http://maven.apache.org/maven-release/maven-release-plugin/examples/perform-release.html-没用。
https://maven.apache.org/guides/mini/guide-releasing.html - 关于如何使用 maven 发布插件的非常好的指南。
堆栈溢出搜索
How to setup the Maven release plugin with git - 可怜的人从来没有得到他的问题的答案。查看 16K 次!
Maven 发布插件 2.2.2 不会推送到分发管理 - 这看起来很有希望,但基本上说它应该推送并说要添加
<distributionManagement>
元素来定义你想要将东西推送到的位置。因为我不想这样做,所以我没有添加这个定义。
Hudson 和 maven-release-plugin - OP 试图弄清楚如何在 hudson 中使用 maven 发布插件。它没有帮助。
https://stackoverflow.com/search?q=%5Bmaven%5D+release - 搜索带有 maven 标签和单词 release 的问题。太多有用的结果(超过 10,000)。
https://stackoverflow.com/search?q=%5Bmaven%5D+release+push - 现在减少到 300 个结果,更好但我没有找到答案。
我的猜测是这已经被问过并回答过但到目前为止我找不到它。
您可以通过更改安装目标来执行此操作,默认情况下它是部署:
<artifactId>maven-release-plugin</artifactId>
<configuration>
<goals>install</goal>
</configuration>
另外,我认为你完全可以忽略执行,因为发布版本和新开发版本的更新和提交都是通过准备步骤完成的: maven 发布插件文档
我确认,
release:prepare
阶段将:
您可能需要从
release:perform
中唯一缺少的步骤是将版本增量到下一个 SNAPSHOT,将发布版本转换为新快照,以便为下一批工作做准备。version:set
.
我有类似的需求,但我想在我的本地存储库中制作一个已发布的副本(
~/.m2/repository/
)。
首先,我摆脱了运行
release:perform
目标,只留下mvn release:clean release:prepare
作为命令。它将版本增加到稳定版本和下一个开发版本,执行所有 git 提交和推送。
然后我在
<projectVersionPolicyId>SemVerVersionPolicy</projectVersionPolicyId>
中添加:configuration
到插件的pom.xml
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<preparationGoals>clean install</preparationGoals>
[…]
</configuration>
</plugin>
以便在执行发布时,在准备好新的稳定版本后,将此版本保存到本地 Maven 存储库。
此参数在插件文档页面中提到: