我有一个包含多个任务的build.gradle文件。
我有一个复制任务,它接受输入从命令行获取的属性值。
def dir = new File('myDir')
task createDir << {
dir.mkdirs()
}
task copyFile(dependsOn: createDir, type: Copy){
from myProperty
into myDir
}
我打电话给gradle:
gradle -PmyProperty=myInputFile copyFile
当我有一个不需要myProperty
定义的其他独立任务
task clean << {
dir.deleteDir()
}
我有以下错误
$ gradle clean
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\temp\build.gradle' line: 41
* What went wrong:
A problem occurred evaluating root project 'temp'.
> Could not find property 'myProperty' on task ':copyFile'.
BUILD FAILED
如何在不需要提供缺失属性的情况下运行干净的任务?
P.S。我现在认为我的问题的标题不是很好,但我不知道如何使它更具表现力。
答案 0 :(得分:0)
这应该有效:
task copyFile(dependsOn: createDir, type: Copy){
from project.hasProperty('myProperty') ? project.myProperty : ''
into myDir
}
问题出现了财产没有通过。因为此代码在配置阶段运行,您需要以某种方式替换它。