Gradle适用于无法访问父属性

时间:2015-01-05 12:07:36

标签: gradle build.gradle

我已经构建了等级文件,我将一些与docker相关的操作外部化。

我的build.gradle文件定义了一个docker镜像名称。

build.gradle:

def docker = [
        imageName: "myOrg/$rootProject.name:$version",
]

apply from: 'build-config/docker.gradle'

应用的脚本包含访问 docker.imageName 变量的任务。

docker.gradle

...
task buildImage(group: "Docker", dependsOn: createDockerfile, type:Exec) {
    executable "docker"
    args 'build','-t',docker.imageName,'build'
}

现在我收到错误 Could not find property 'docker' on task ':buildImage'.

如何在应用的frome gradle脚本中使用build.gradle中定义的变量。

1 个答案:

答案 0 :(得分:3)

def的{​​{1}}变量声明中将ext.替换为docker,如下所示:

build.gradle

基本上ext.docker = [ imageName: "myOrg/$rootProject.name:$version", ] apply from: 'build-config/docker.gradle' 命名空间用于定义项目级自定义属性,然后应用脚本ext可以访问该属性,该脚本也属于项目范围。

仅使用docker.gradle,属性可见性仅限于脚本文件。