【发布时间】:2020-02-01 06:55:30
【问题描述】:
我有一个 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 时,我可以看到我想要执行的所有其他步骤都已正确执行。
- pom.xml 文件已从 1.2-SNAPSHOT 更改为 1.2,并执行了提交并创建了一个 git 标记来标记该版本。
- 然后将 pom.xml 文件更改为 1.3-SNAPSHOT 以准备好用于后续开发的 git 分支。
所以...一切看起来都不错。 我要做的就是告诉 maven 不要尝试进行推送,以便命令完成而不会出错。
注意:有几个来自release:prepare 的文件被留下,一个是release.properties,但如果有必要我可以手动删除它。
我正在寻找的一些解决方案是:
- 你不能那样做。
- 只需取下
release:perform,只运行release:prepare。我现在正在测试这个。 - 添加标志 -DmavenReleasePluginDontPushToNexus=true。我正在编造这个,但想知道是否有旗帜。
我已经为上述所有问题寻找解决方案,但尚未找到答案。
寻找解决方案
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 release plugin 2.2.2 doesn't push to distributionmanagement - 这看起来很有希望,但基本上说它应该推送并说添加
<distributionManagement>元素来定义你想要推送东西的位置。因为我不想这样做,所以我没有添加这个定义。 -
Hudson and maven-release-plugin - OP 试图弄清楚如何将 maven 发布插件与 hudson 一起使用。它没有帮助。
-
https://stackoverflow.com/search?q=%5Bmaven%5D+release - 使用 maven 标签和单词 release 搜索问题。有用的结果太多(超过 10,000 个)。
-
https://stackoverflow.com/search?q=%5Bmaven%5D+release+push - 现在减少到 300 个结果,更好,但我没有找到答案。
我的猜测是以前有人问过并回答过,但到目前为止我找不到。
【问题讨论】:
-
它看起来像只运行
mvn release:prepare做我想要的,然后我运行mvn release:clean来删除在准备步骤中创建的文件。 -
@khmarbaise,我过去曾使用过
-DdryRun。在这种情况下会有什么帮助?