【问题标题】:Gradle release plugin which stores version in build.gradle将版本存储在 build.gradle 中的 Gradle 发布插件
【发布时间】:2017-07-02 19:17:21
【问题描述】:

我正在将我的应用程序从 maven 转换为 gradle,并且我正在寻找 maven-release-plugin 替代 gradle。

我需要的插件是:

  • 从版本中删除“-SNAPSHOT”后缀并提交到 git repo
  • 在此提交上创建新的 git 标签
  • build.gradle 中的 bump 版本(如 pom.xml),并添加“-SNASPHOT”后缀

我猜,最受欢迎的是 Gradle Release Plugin (https://github.com/researchgate/gradle-release)。它工作得很好,但是,它将版本存储在一个单独的文件“gradle.properties”中。我需要将此版本存储在“build.gradle”文件中(如 pom.xml 中的版本)。

我还测试了以下插件,但它们也不将版本存储在 build.gradle 中:

是否有任何 Gradle 插件可以与“build.gradle”文件中的版本一起使用?

【问题讨论】:

  • 为什么直接需要build.gradle中的版本?
  • @Vampire,我不想在我的项目中再添加一个文件。我想把所有 gradle 的东西放在一个地方。
  • @Barataliba gradle.properties 是一个标准的gradle机制如何添加项目属性。您应该重新考虑在您的项目中添加一个额外的文件。
  • @sm4,我已经有两个 gradle 文件:“build.gradle”和“settings.gradle”。如果有办法将版本保留在“build.gradle”文件中,我不想创建第三个。

标签: maven gradle release gradle-release-plugin


【解决方案1】:

你可以G。制作

plugins {
    id 'net.researchgate.release' version '2.4.0'
}

version = '1.2.3'

release {
    versionPropertyFile = 'build.gradle'
}

updateVersion.doLast {
    def buildGradle = file('build.gradle')
    buildGradle.text = buildGradle.text.replaceFirst(~/version = (\d++\.\d++\.\d++)/, 'version = \'$1\'')
}

【讨论】:

  • 如果 build.gradle 中的其他地方存在相同的版本怎么办。说同版本的依赖?
  • 没问题,毕竟替换期望版本存储在属性文件中。它替换了名为 version 的属性的值(加上您配置的其他属性)。这也是您需要进行额外替换以添加引号的原因。
猜你喜欢
  • 2020-08-30
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多