可以将 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 吗?的主要内容,如果未能解决你的问题,请参考以下文章