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

Gradle/Groovy从内部块中引用“文件范围/全局”变量,gradle,global-variables,Gradle,Global Variables,在我的构建文件中,我有以下行: version = '1.1.2' 我想使用shadowjarsee-my-answer创建一个可执行的胖jar,然后将其复制到另一个目录see-answer。但是我想将项目的版本号合并到jar文件的名称中,这样就不会覆盖现有的版本 说明了如何设置名称: shadowJar { baseName = 'shadow' classifier = null version = "7.7.7" } 。。。但是如何在这里设置变量版本以使用外部文

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

version = '1.1.2'
我想使用shadowjarsee-my-answer创建一个可执行的胖jar,然后将其复制到另一个目录see-answer。但是我想将项目的版本号合并到jar文件的名称中,这样就不会覆盖现有的版本

说明了如何设置名称:

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

。。。但是如何在这里设置变量版本以使用外部文件范围/全局。。。变量版本?

在gradle脚本中,范围中有一个实例,所有内容都委托给该实例。当你说version='1.1.2'时,它实际上是在调用

getProject().setVersion('1.1.2')
在shadowJar闭包中,范围中有一个更高的版本隐藏了项目版本。所以你可以

shadowJar {
    version = project.version
    ...
}

version=project.versionHa。。。非常感谢。如果你想获得一些分数,请添加答案。另外,如果有人感兴趣,设置project.version变量的行必须实际位于该任务中对该变量的引用之前。不知何故,像我这样的新手认为所有变量都将在第一个生命周期中设置。。。