Gradle / Groovy引用内部块中的“文件范围/全局”变量

时间:2017-01-18 20:49:14

标签: gradle global-variables

在我的构建文件中,我有以下一行:

version = '1.1.2'

我想使用Shadow Jar创建一个可执行文件“fat jar”(请参阅​​我的回答here),然后将其复制到另一个目录(请参阅回答here)。但我想将项目的版本号合并到jar文件的名称中,以免覆盖现有版本。

Shadow Plugin User Guide解释了如何设置名称:

shadowJar {
    baseName = 'shadow'
    classifier = null
    version = "7.7.7"
}

...但是我如何在此处设置变量version以使用外部(文件范围/全局...)变量version

1 个答案:

答案 0 :(得分:1)

在gradle脚本中,范围内有一个Project实例,代表所有内容。当你说version = '1.1.2'它实际上正在调用

getProject().setVersion('1.1.2')

在你的shadowJar闭包中,在隐藏项目版本的范围内有一个更高的版本。所以你可以做到

shadowJar {
    version = project.version
    ...
}