当前位置: 首页 > 知识库问答 >
问题:

将maven release插件升级到2.5.2后未发布快照版本

章茂
2023-03-14

快照版本不会在快照存储库上发布,而是发布版本。

发布成功。没有错误。

唯一的变化是版本插件从2.3.2升级到2.5.2

也尝试了2.5.1和2.5.3,但都不起作用。

使用apache maven 3.5.0

步骤:

  • mvn清洁安装

输出:在所有三个方面都取得成功

不确定我是否可以附加实际日志

代码片段pom.xml

<artifactId>maven-clean-plugin</artifactId>
                <version>2.5</version>
<artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
<artifactId>maven-overview-plugin</artifactId>
                <version>1.6</version>
 <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.3</version>
<artifactId>maven-dependency-plugin</artifactId>
                    <version>2.5</version>
<artifactId>maven-release-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <scmCommentPrefix>: Release by maven </scmCommentPrefix>
                        <tagNameFormat>bcd-@{project.version}</tagNameFormat>
                        <arguments>-Denvironment=target</arguments>
                    </configuration>

<repository>
            <id>apache.snapshots</id>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

<distributionManagement>
        <repository>
            <id>arm</id>
            <name>Internal release Repository</name>
            <url>url1</url>
        </repository>
        <snapshotRepository>
            <id>arm</id>
            <name>Internal Repository</name>
            <url>url2</url>
        </snapshotRepository>

共有2个答案

邴和雅
2023-03-14

这是根据您正在使用的命令/目标预期的:

  • mvn清洁安装安装您的SNAPSHOT依赖于您的本地存储库,但它不部署它在您的Maven存储库
  • mvn版本:准备更新您的POM版本,并使用标签更新您的SCM
  • mvn释放:实际上是在存储库上部署你的版本

你的快照永远不会部署在任何存储库上。要实现这一点,您应该在使用release:goals之前运行deploy:deploy目标。例如:

mvn clean install deploy:deploy release:prepare release:perform 

相当于:

mvn clean deploy release:prepare release:perform 

注意你的pom。应正确配置xml和存储库,以允许部署快照工件。

赖杰
2023-03-14

您的问题是由影响2.3.2的Maven发行版插件中的问题MRELEASE-812引起的,并从2.5开始解决。然而,插件实际上应该发布应用程序的发布版本,而不是快照版本。当你说:

快照版本不会在快照存储库上发布,而是发布版本。

使用发布插件时,快照版本不应发布在存储库中。发布版本实际上是预期的。详细解释如下。

当您使用mvn发行版时应该发生什么:准备发行版:执行

  1. release:prepare将项目从版本x.y.z-SNAPSHOT更新为x.y.z(项目的“发布”版本)提交将所有更改推送到Git存储库(或任何其他SCM)并创建名为bcd-x.y.z
  2. release:perform将签出/从标记的版本中取出bcd-x.y.z释放并部署到存储库中
  3. 发行版x.y.z现在部署在您的回购协议上

这实际上是当你使用版本2.5.2的发布插件时发生的事情,实际上是预期的和正常的行为。

以下是使用2.3.2版插件时发生的情况:

  1. 释放:准备将您的项目从版本x. y. z-SNAPSHOT更新到x. y. z,即您的项目的发布版本,但是由于MRELEASE 812,这些更改从未被推送到Git。因此,使用项目的x. y. z-SNAPSHOT版本而不是正确的发布版本创建了标记,因为更新版本号的更改从未被推送。
  2. 释放:执行将检查出*不正确命名的*标签bcd-x. y. z实际上包含x. y. z-SNAPSHOT版本,并将其部署在您的存储库中作为SNAPSHOT。
  3. 快照版本x. y. z-SNAPSHOT现在可以在您的回购中使用。

Maven从未表现出任何错误,但这不是正确的行为。你真正的问题其实是你以前使用的插件,你的构建现在有了预期的行为;)

你能做的:

  • 我建议你保持你的实际配置与最近的插件版本。请记住,Maven发布插件是发布您的应用程序的版本,而不是快照。
  • 如果您想将SNAPSHOT版本发布到您的存储库,请在包含SNAPSHOT版本的修订版上使用mvn部署,而不是创建版本。

希望这有帮助。不要犹豫询问细节,我会更新我的答案。

 类似资料:
  • 升级发布插件 蓝天采集器2.0版本框架采用thinkphp5.0,从1.x版本升级到2.0后发布插件需要修改代码才能正常使用! 该升级方法适用于:cms发布插件、自定义发布插件 Cms发布插件修改 旧的cms插件目录:根目录/SkycaijiApp/Release/Cms,打开文件例如:WordpressDemoSkycaijiCms.class.php namespace Release\Cm

  • 你好,我从我的工作站上释放了一个项目,没有任何问题。我最近尝试从1.0.0-Snapshot发布另一个项目。然而,当它实际发布时,它将1.0.1-快照发布到快照存储库,而不是1.1.0发布到快照存储库。我做了dryrun=真的,看起来很好。事实上,它将我默认为以下版本: 我接受所有的默认值。然而,当我执行“MVN Release:Perform”时,它是这样做的: 我使用的是最新的maven,我手

  • 我还用 春云Hoxton.sr7 Spring-Cloud-Starter-Sleuth 2.2.4 Spring-Cloud-Starter-Zipkin 2.2.4 spring-boot-starter-data-rest 2.2.9 Spring-引导-起动器-石英2.2.9 spring-boot-configuration-processor 2.2.9 Spring-Boot-Sta

  • 问题内容: 我已经将我的Jenkins服务器升级到1.505,但是意外地使用Maven插件构建无法正常工作,并且在Jenkins日志中引发了异常 经过一个小时的搜索,我发现Maven插件家伙升级了他们的代码库,并且由于“可选”依赖项而失败,因此我添加了“可选插件”,但它仍然无声地失败,并且在Jenkins日志中没有任何异常。 错误出现在控制台日志上是 有什么提示吗? 问题答案: 新的maven插件

  • 我的计划是建立一个设置,在这个设置中,我可以基于我正在运行的maven目标发布快照和版本。我当前的pom包含以下详细信息- 我的maven settings.xml包含服务器条目- 当我运行命令时 编辑1- 我运行了,部署插件的日志是-

  • 我正在使用maven发布插件进行发布管理。我运行mvn release:prepare on release分支。这样做的结果是,我有一个带有发布版本的git标记,以及带有下一个开发快照版本的发布分支。 现在,我想改变这个过程,以便发布分支总是有正式版本(没有SNAPSHOT版本的碰撞)。 这样做的原因是在生成构建时,我希望发布分支和发布标签具有相同的HEAD提交。 如果我可以跳过碰撞版本的最后一