Slackbot
10/03/2022, 8:01 PMClayton Walker
10/03/2022, 8:03 PMChris Lee
10/03/2022, 8:08 PMChris Lee
10/03/2022, 8:10 PMClayton Walker
10/03/2022, 8:10 PMClayton Walker
10/03/2022, 8:11 PMbuildFile << """
plugins {
id('gradle.plugin.closure.issue.greeting')
}
"""
Clayton Walker
10/03/2022, 8:11 PMproject.tasks.register("issue", GradlePluginClosureIssueTask) { GradlePluginClosureIssueTask task ->
task.doLast {
println("Ran gradle issue task")
}
}
Chris Lee
10/03/2022, 8:12 PMproject.tasks.register("issue", GradlePluginClosureIssueTask) { task ->
task.doLast {
println("Ran gradle issue task")
}
}
Clayton Walker
10/03/2022, 8:13 PMClayton Walker
10/03/2022, 8:15 PMat gradle.plugin.closure.issue.GradlePluginClosureIssueTask$_closure1.doCall(GradlePluginClosureIssueTask.groovy:14)
line is
if (getSomeData() != null) {
in the taskChris Lee
10/03/2022, 8:15 PMproject.tasks.register("issue", GradlePluginClosureIssueTask) {
doLast {
println("Ran gradle issue task")
}
}
Clayton Walker
10/03/2022, 8:17 PM@CompileStatic
annotation on the plugin. Removing it made the compiler error go away, but not the task cast errorClayton Walker
10/03/2022, 8:19 PMClayton Walker
10/03/2022, 8:19 PM> Could not find method getSomeData() for arguments [] on task ':issue' of type gradle.plugin.closure.issue.GradlePluginClosureIssueTask.
Chris Lee
10/03/2022, 8:21 PMClayton Walker
10/03/2022, 8:21 PMChris Lee
10/03/2022, 8:23 PMClayton Walker
10/03/2022, 8:23 PMChris Lee
10/03/2022, 8:24 PMClayton Walker
10/03/2022, 8:24 PMChris Lee
10/03/2022, 8:26 PMChris Lee
10/03/2022, 8:27 PMClayton Walker
10/03/2022, 8:31 PMClayton Walker
10/03/2022, 8:31 PMChris Lee
10/03/2022, 8:31 PMClayton Walker
10/03/2022, 10:00 PMClayton Walker
10/03/2022, 10:01 PMoutputs.upToDateWhen {
by default in groovy that syntax will call the Closure overrideClayton Walker
10/03/2022, 10:01 PMClayton Walker
10/03/2022, 10:01 PMoutputs.upToDateWhen(new Spec<Task> { .......
in groovy makes the whole thing workChris Lee
10/03/2022, 10:02 PMoutputs.upToDateWhen( Spec<Task> {
Chris Lee
10/03/2022, 10:02 PMChris Lee
10/03/2022, 10:02 PMClayton Walker
10/03/2022, 10:02 PMoutputs.upToDateWhen {
} as Spec<Task>
and that failed tooChris Lee
10/03/2022, 10:03 PMSpec<Task>?
Clayton Walker
10/03/2022, 10:03 PMClayton Walker
10/03/2022, 10:04 PMSpec<Task> upToDateWhen = { Task task ->
if (getSomeData() != null) {
return true
}
false
}
outputs.upToDateWhen(upToDateWhen)
which pretty much makes up every syntactical variation I could come up withChris Lee
10/03/2022, 10:05 PMClayton Walker
10/03/2022, 10:06 PM