Maven 发布使用部分

Posted

技术标签:

【中文标题】Maven 发布使用部分【英文标题】:Maven release use parts 【发布时间】:2012-08-15 14:37:30 【问题描述】:

Maven 发布插件是一个很酷的工具,可以简化发布。但我想稍微改变一下行为。

最重要的是,我不希望任何更改自动提交到存储库。这应该由开发人员手动完成。

我的梦想是这样的:

    检查没有使用 SNAPSHOT 依赖项(必须) 检查没有未提交的更改(可选) 更新所有工件的版本号,允许用户输入新的版本号(必须) 已解决:与mvn versions:set 在本地构建项目 已解决:使用mvn clean install

我不知道如何挑选一些在发布插件中工作的方法。有什么想法吗?

【问题讨论】:

您是否不担心错过发布插件的主要优势之一 - 确保提交到存储库的代码绝对是新签出并正确构建的代码?不过,您认为插件上的dryRun 设置可能有帮助吗? maven.apache.org/plugins/maven-release-plugin/… 不,我不担心,因为我们使用的是连续构建服务器。该服务器定义了如何构建。 dry-run 没有帮助,因为 maven “发送”了一个 svn 命令(我的机器上没有安装 svn),导致 svn 未知错误。 【参考方案1】:

您描述的事情将由 maven-release-plugin 自动完成。如果您没有在构建服务器上安装 svn,您需要配置发布插件以使用 svnkit installation

【讨论】:

是的,我的想法来自插件所做的事情。我将尝试使用 svnkit 配置 maven。也许我的问题有点令人困惑:我需要知道如何使用部分目标 relase:prepare 还是 maven 强制我使用完整的目标还是什么都不用? (对不起,我还不是专家) 我同意 khmarbaise,您提到的所有 4 点都包含在 maven-release-plugin 的默认行为中,无需任何额外配置。对于发布,我们通常先执行 mvn release:prepare(处理 1、2、3 和 4),然后执行 mvn release:perform 你也自动标记吗?仅当版本已按照 buildServer 上定义的方式成功构建时,我才想标记。没有为开发者打标签。 @khmarbaise 你知道如何使用 svnkit 的文档吗?您提供的网站上的文档不容易理解。 好的,使用 svnkit 安装工作。最后,我们完全使用了 Maven 发布插件。无需任何定制。 :-)

以上是关于Maven 发布使用部分的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Maven 中验证父 POM 的 pluginManagement 部分?

OpenApi - 有没有办法在使用 springdoc-openapi-maven-plugin 生成的合同中使用带有鉴别器部分的组合模式?

在 Maven 配置文件中使用属性标签

如何使用shadowJar gradle插件而不是maven发布将胖JAR发布到JitPack

Maven 默认生命周期和插件部分

如何获得 Maven 版本的主要部分?