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

Maven Release Plugin-prepare创建快照版本而不是发布版本的标记

郭翰墨
2023-03-14

我有以下项目结构:

  • 框架
    • 框架父pom
    • 构架某事

    在框架-父母-pom的pom.xml中,我定义了以下插件:

    <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <branchBase>http://.../svn/REPO/branches/framework</branchBase>
            <tagBase>http://.../svn/REPO/tags/releases/framework</tagBase>
            <tagNameFormat>release-@{project.version}</tagNameFormat>
            <releaseProfiles>release</releaseProfiles>
        </configuration>
    </plugin>
    

    并遵循SCM:

    <scm>
        <developerConnection>scm:svn:http://.../svn/REPO/trunk/framework/framework-parent-pom</developerConnection>
    </scm>
    

    当我运行以下命令时。。。

    mvn release:prepare -DautoVersionSubmodules=true -Darguments="-DskipTests" -Dresume=false
    

    ……一切似乎都很顺利。

    在本地创建了带有发布版本的JAR,并且POM很好地更新到下一个SNAPSHOT版本。同样在SVN中,乍一看似乎还可以。标签已创建,其中包含所有框架项目。

    但是,当查看标记的POM时,我看到它们仍然具有初始快照版本作为版本。这当然会导致执行步骤构建快照版本而不是发布版本。

    我做错了什么?

共有3个答案

唐默
2023-03-14

我也面临着同样的问题。在我来的时候,这是因为错误的单片机开发人员连接字符串。

<scm>
<developerConnection>scm:svn:http://.../../trunk</developerConnection>
</scm>

我已经从分支中删除了代码并正在执行发布:准备

您可以检查developerConnection路径,它应该与代码库路径相同。

陆翔飞
2023-03-14

我有一个类似的问题。它标记了快照版本,因为它在标记之前没有提交POM更改。

我发现只有使用以下配置选项,它才能工作:

<remoteTagging>false</remoteTagging>
<suppressCommitBeforeTag>false</suppressCommitBeforeTag>
贺博厚
2023-03-14

我在maven发布插件问题跟踪器MRELEASE-812中找到了解决方法:

就我而言,变化是:

       <plugin>
         <artifactId>maven-release-plugin</artifactId>
-        <version>2.2.2</version>
+        <version>2.4.1</version>
         <configuration>
           <releaseProfiles>release</releaseProfiles>
           <goals>install animal-sniffer:check deploy site</goals>
         </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-api</artifactId>
+            <version>1.8.1</version>
+          </dependency>
+          <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-provider-gitexe</artifactId>
+            <version>1.8.1</version>
+          </dependency>
+        </dependencies>
       </plugin>
 类似资料:
  • 我的目标是发布一个具有单一依赖项的项目。我有一个nexus存储库,我在其中部署快照和发布版本。 我唯一的依赖性 我的nexus repo中发布了以下候选版本 当要求版本插件解决依赖关系时,它声称没有新的依赖关系可用。所以他认为 但是,如果在我的项目中有版本1.0.0-SNAPSHOT,那么版本1.1.0-RC1将解析为最新版本。 我错过了什么?(我查看了插件源代码,我们有以下片段: 对我来说这辆车

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

  • 对于那些等不了 Glide 的下一个稳定版的用户,我们在 Sonatype’s snapshot repo 部署了 Glide 库的快照版本。 在每次 push 到 GitHub 的 master 分支上后,Glide 会通过 travis-ci 构建。如果构建成功,我们将自动部署最新版本的库到 Sonatype 上。 每个集成库都有它自己的快照,与主 Glide 库一样。如果你使用了 Glide

  • 所以我做了mvn释放:清洁和mvn释放:准备。 因此,我的subversion上有一个干净的标签,上面有我的工件的最新版本1.3.3。 现在,我想在本地maven repo(.m2)上安装该版本1.3.3,而不是在远程中央maven repo上。 如何做到这一点? 我是否需要更改设置。xml??? 我是否需要运行mvn release:使用某种本地选项执行???现在,如果我运行mvn releas

  • 版本号 采用三位版本号,分别是主版本号、次版本号、修订版本号。例如 5.1.2。 参见: http://semver.org/lang/zh-CN/。 主版本号:主版本号内的所有版本必须相互兼容;与其它主版本号不一定完全兼容,尽量向下兼容。 次版本号:代表新特性增强。版本号越大特性越丰富。 修订版本号:代表BugFix版本。只做bug修复使用,版本号越大越稳定。 版本维护 最多同时维护两个版本。

  • 我有一个奇怪的问题,我的调试版本工作正常,但是在签署并生成一个应用程序包后,我将其上传到Play商店,该应用程序立即崩溃(我在具有我的应用程序的商店版本的手机上运行LogCat,我看到它与AndroidX ConstraintLayout有关,但无法复制它)。我认为和版本之间有一些区别,所以我开始调试我的发布版本。 当我这样做时,Android Studio无法安装APK,出现以下错误: 安装失败