[英]task declaration not working in gradle
我有下面的代码失败的gradle文件。
task wakeup
task dressup
task playMusic
task goRunning
//dependsOn(task)
wakeup <<{
println("I am awake,i need to go for a run")
}
dressup(dependsOn: wakeup)<<{
println("I am ready with my track suit")
}
playMusic(dependsOn: dressup)<<{
println("I have played track 7")
}
goRunning(dependsOn: playMusic)<<{
println("I am running")
}
错误:-
C:\Users\akathaku\Desktop\gradlelearning>gradle -q -b taskmethods.gradle goRunning
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\akathaku\Desktop\gradlelearning\taskmethods.gradle' line: 14
* What went wrong:
A problem occurred evaluating root project 'gradlelearning'.
> Could not find method dressup() for arguments [{dependsOn=task ':wakeup'}] on root project 'gradlelearning'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
但是如果我将代码更改为:-
//dependsOn(task)
task wakeup <<{
println("I am awake,i need to go for a run")
}
task dressup(dependsOn: wakeup)<<{
println("I am ready with my track suit")
}
task playMusic(dependsOn: dressup)<<{
println("I have played track 7")
}
task goRunning(dependsOn: playMusic)<<{
println("I am running")
}
它运行完美。 通常情况下,声明任务并稍后使用它是有效的。但是使用dependsOn方法会失败。
您的问题不是dependsOn method
,显然在第二个示例中它可以工作。
问题在于,尝试定义任务主体时您缺少task
声明,因此gradle将常规代码解释为方法调用。 含义,当您写:
dressup(dependsOn: wakeup)<<{
println("I am ready with my track suit")
}
Gradle不能将其识别为任务,而是在尝试使用参数{dependsOn: wakeup}
调用名为dressup
的方法时看到了dressup(dependsOn: wakeup)
部分。 但是不存在这样的方法,并且会出现错误。
这就是为什么您总是需要告诉gradle这是一项任务的原因,即:
task dressup(dependsOn: wakeup)<<{
println("I am ready with my track suit")
}
按照您的第二个(也是成功的)示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.