我想创建一个带有java编译任务的自定义gradle插件。这是我的第一次拍摄:
class SpringDocPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task(type: JavaCompile, "generateSpringDoc") {
source = it.sourceSets.main.java
classpath = it.sourceSets.main.output + configurations.compile
options.compilerArgs = [
"-proc:only",
"-processor", "com.thilko.springdoc.SpringAnnotationProcessor"
]
// specify output of generated code
destinationDir = it.sourceSets.generated.java.srcDirs.iterator().next()
}
}
}
我有一个应用插件的测试项目。找到插件,但是我收到了这个错误:
What went wrong:
A problem occurred evaluating root project 'gradle-springdoc-plugin-test'.
> Could not find property 'sourceSets' on task ':generateSpringDoc'.
我不知道如何将特定任务添加到我的插件中,有人可以帮忙吗?
答案 0 :(得分:0)
sourceSets
是java-base
插件引入的概念/模型(非任务)。 sourceSets.main
插件添加了java
等源集实例(构建于java-base
之上)。如果您的插件处理源集,请在其apply
方法的开头添加以下内容:
project.plugins.apply("java")
// or: project.plugins.apply(org.gradle.api.plugins.JavaPlugin)