相关疑难解决方法(0)

Gradle额外属性在子项目中定义的自定义任务中不可见

我正在尝试在多个Gradle任务中重用通用逻辑,类似于本答案中建议的,但是我遇到了额外的项目属性不可见的问题.

归结起来,这就是问题所在.假设我有一个根Gradle构建脚本,build.gradle它设置了一个额外的项目属性,

project.ext.myProp = 'myValue'
Run Code Online (Sandbox Code Playgroud)

我有一个子项目settings.gradle,

include 'subproject'
Run Code Online (Sandbox Code Playgroud)

子项目定义并使用引用该额外项目属性的自定义任务,

class CustomTask extends DefaultTask {
    CustomTask() {
        doFirst {
            println project.ext.myProp
        }
    }
}

task custom(type: CustomTask) {
    println 'custom task'
}
Run Code Online (Sandbox Code Playgroud)

执行这个给了我这个:

FAILURE: Build failed with an exception.
...
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':subproject'.
...
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'CustomTask'.
...
Caused by: groovy.lang.MissingPropertyException: cannot get property 'myProp' on extra properties extension as it …
Run Code Online (Sandbox Code Playgroud)

properties task gradle extra

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

extra ×1

gradle ×1

properties ×1

task ×1