Gradle 从无法访问父属性申请
Gradle apply from no access to parent properties
我有构建等级文件,我在其中外部化了一些 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'.
如何在应用的 gradle 脚本中使用 build.gradle 中定义的变量。
将build.gradle
中docker
变量声明中的def
替换为ext.
,如下:
ext.docker = [
imageName: "myOrg/$rootProject.name:$version",
]
apply from: 'build-config/docker.gradle'
基本上 ext
命名空间用于定义项目级别的自定义属性,然后应用脚本 docker.gradle
可以访问这些属性,这也属于项目的范围。
单独使用 def
,属性 可见性仅限于脚本文件。
我有构建等级文件,我在其中外部化了一些 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'.
如何在应用的 gradle 脚本中使用 build.gradle 中定义的变量。
将build.gradle
中docker
变量声明中的def
替换为ext.
,如下:
ext.docker = [
imageName: "myOrg/$rootProject.name:$version",
]
apply from: 'build-config/docker.gradle'
基本上 ext
命名空间用于定义项目级别的自定义属性,然后应用脚本 docker.gradle
可以访问这些属性,这也属于项目的范围。
单独使用 def
,属性 可见性仅限于脚本文件。