Slackbot
06/06/2023, 10:30 AMThomas Broyer
06/06/2023, 10:41 AMthis.getProject().getGradle().getTaskGraph()
from your @TaskAction
?twisterrob
06/06/2023, 10:42 AMThomas Broyer
06/06/2023, 10:46 AMtwisterrob
06/06/2023, 10:49 AM@get:Internal // does not affect outputs
internal abstract val hasTask: Property<Boolean>
init {
hasTask.convention(project.provider { project.gradle.taskGraph.hasTask(":myTask") })
}
@TaskAction fun f() { val hasTask = hasTask.get() ... }
Javi
06/06/2023, 1:24 PMproject
inside task is discouragedJavi
06/06/2023, 1:24 PMtwisterrob
06/06/2023, 1:25 PMJavi
06/06/2023, 1:26 PMtwisterrob
06/06/2023, 1:26 PMtwisterrob
06/06/2023, 1:26 PMJavi
06/06/2023, 1:29 PMproject.register<MyTask>("myTask", provider<Boolean> { project.hasTaskWhatever() })
open class MyTask @Inject constructor(private val hasTaskWhatever: Provider<Boolean>) : DefaultTask()
Javi
06/06/2023, 1:30 PM@Internal
plus internal val hasTaskWhatever: ...
tootwisterrob
06/06/2023, 1:50 PMproject.register<T>("name") { prop.convention/set(...) }
is the best option, because those things change between usages.