Gradle插件项目版本号

jaql4c8m  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(139)

我有一个使用project.version变量的gradle插件。
然而,当我在build.gradle文件中更改版本时,插件中的版本不会更新。

举例说明:

插件

// my-plugin
void apply(Project project) {
  project.tasks.create(name: 'printVersionFromPlugin') {
    println project.version
  }
}

字符串

build.gradle

version '1.0.1' // used to be 1.0.0

task printVersion {
  println project.version
}

apply plugin: 'my-plugin'

结果

> gradle printVersion
1.0.1
> gradle printVersionFromPlugin
1.0.0

7gyucuyw

7gyucuyw1#

您可以使用gradle属性提取项目版本,而无需向build.gradle文件添加专用任务。
举例来说:

gradle properties -q | awk '/^version:/ {print $2}'

字符串

z9zf31ra

z9zf31ra2#

构建脚本和插件都犯了同样的错误。它们将打印版本作为配置任务的一部分,而不是为任务提供行为(任务操作)。如果在构建脚本中设置版本之前应用插件(通常情况下),它将打印version属性的先前值(可能在gradle.properties中设置了一个)。
正确的任务声明:

task printVersion {
    // any code that goes here is part of configuring the task
    // this code will always get run, even if the task is not executed
    doLast { // add a task action
        // any code that goes here is part of executing the task
        // this code will only get run if and when the task gets executed
        println project.version
    }
}

字符串
插件的任务也是如此。

相关问题