我正试图将checkerframework插件(但我假设它可以是任何插件)懒洋洋地应用到我的java子项目。该子项目有几个项目,其中超过1个是java项目。
我的build.gradle.kts文件:
plugins {
alias(buildscript.plugins.sonarqube)
id("org.checkerframework") version "0.6.36"
}
subprojects {
if (file("src/main/java").isDirectory) {
apply(plugin = "org.checkerframework")
checkerFramework {
checkers = listOf("org.checkerframework.checker.nullness.NullnessChecker")
}
}
....
}
字符串
如果我运行一个.\gradlew.bat build --scan
命令,我可以看到checkerframework任务没有被延迟创建,我可以看到创建了8个任务。
我试着把它改成下面的:
plugins {
id("org.checkerframework") version "0.6.36"
}
subprojects {
tasks.withType<JavaCompile>().configureEach {
apply(plugin = "org.checkerframework")
checkerFramework {
checkers = listOf("org.checkerframework.checker.nullness.NullnessChecker")
}
}
...
}
型
但是它在子项目中给我错误
Could not determine the dependencies of task ':mysubproject1:jar'.
> Could not create task ':mysubproject1:compileJava'.
> Failed to apply plugin 'org.checkerframework'.
> DefaultTaskCollection#configureEach(Action) on task set cannot be executed in the current context.
型
懒惰地应用任务的正确方法是什么?
1条答案
按热度按时间vaj7vani1#
我认为你说的“lazy”是指:“我如何只在Java子项目中应用插件?”
答案是这样写:
字符串