可以将 gradle-release-plugin 配置为使用 SemVer 吗?

Posted

技术标签:

【中文标题】可以将 gradle-release-plugin 配置为使用 SemVer 吗?【英文标题】:Can gradle-release-plugin be configured to use SemVer? 【发布时间】:2020-01-08 12:25:50 【问题描述】:

我有一个 Spring-Boot Gradle 4.10.3 项目,目前运行良好。它使用 gradle-release 插件进行发布和版本管理。

但是,我现在有一个新要求,即为此项目生成的工件遵守 SemVer 约定。我知道有 SemVer Gradle 插件,但如果我不需要,我不想重新调整我的整个发布过程。如果 gradle-release 能让我指定文件名模式,那就太好了。

config docs 提到了一个名为 versionPatterns 的参数,这似乎很有帮助。但我不知道如何修改给出的示例:

版本模式 = [ /(\d+)([^\d]*$)/: Matcher m, Project p -> m.replaceAll("$(m0 as int) + 1$m[0][2 ]") ]

所以,我需要的是要更改的文件名:

AppName-1.2.3-SNAPSHOT.jar

收件人:

AppName.1.2.3-SNAPSHOT.jar

实际上,这似乎只是用点替换第一个破折号的问题。

这可以通过 gradle-release 配置完成吗?如果没有,有没有更简单的方法?我想继续使用 gradle-release 插件,因为它已经连接到我的所有进程中。

【问题讨论】:

【参考方案1】:

我似乎通过配置 bootJar 部分实现了我的目标。

我使用的是较旧的 Gradle 版本,因此我使用了一些已弃用的属性。但是将以下内容添加到 bootJar 似乎可以解决问题。仍然对其他/更好的想法感兴趣。

archiveName = "$baseName.$version.$extension"

【讨论】:

gradle-release 与命名无关,你发现它是 jar 任务的一部分。 archiveName 已弃用,替换为archiveFileName。查看docs.gradle.org/current/dsl/… BootJar 从 gradle 扩展 Jar。

以上是关于可以将 gradle-release-plugin 配置为使用 SemVer 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将WinFrom嵌入ASP.NET?请问可以吗??

SQL 查询 有啥函数可以将数字转换成大写的

为啥可以将切片分配给空接口但不能将其强制转换为相同的空接口

是否可以将对象设置为空?

我可以将 Enum 扩展为 Enum.GetValues() 吗? [复制]

我可以将 Visual C++ 用于将使用 gcc 编译的作业吗?