我比较陌生,所以请耐心等待我。 我的build.gradle:
def releaseBol = false
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
lintOptions {
abortOnError false
}
...
if (project.hasProperty('RELEASE') && project.ext.RELEASE == '1')
releaseBol = true
if (releaseBol)
{
..
//some code
..
}
}
...
task runScheduleReader() {
javaexec {
println 'here1'
main="-jar";
args = [
"../Generator.jar"
]
}
}
如果runScheduleReader
设置为releaseBol
,我希望运行true
,但只是将其移到那里时会出错,我该怎么做?
答案 0 :(得分:3)
尝试:
task runScheduleReader() {
enabled = releaseBol
doLast {
javaexec {
println 'here1'
main="-jar";
args = [
"../Generator.jar"
]
}
}
}
请查看enabling and disabling个任务。第二个问题是您在配置时添加了逻辑,因此每次评估脚本时都会执行该逻辑。您需要使用doLast
添加操作。
答案 1 :(得分:1)
Opal提供的solution是正确的,你可以使用enabled
任务选项来跳过stask执行。但这不是你必须做的唯一改变。
您目前是一个没有任何类型的任务,并在任务关闭中使用javaexec
。这使得javaexec
在构建配置阶段运行并且enabled
属性值没有意义。您可以通过以下两种方式使其在执行阶段运行:将javaexec
移动到doLast
闭包中:
task runScheduleReader() {
enabled = releaseBol
doLast {
javaexec {
println 'here1'
main = "-jar";
args = [
"../Generator.jar"
]
}
}
}
或者设置任务的类型并将配置移动到它的闭包根:
task runScheduleReader(type: JavaExec) {
enabled = releaseBol
println 'here1'
main = "-jar";
args = [
"../Generator.jar"
]
}