Gradle 如何在自定义插件中创建sourceset
我正在编写自定义插件,它应该根据插件扩展创建源集的数量。 我怎样才能在应用方法中做到这一点 以下是我的代码片段(两者都不起作用)、标签-来自扩展名的列表: 一, 二,Gradle 如何在自定义插件中创建sourceset,gradle,Gradle,我正在编写自定义插件,它应该根据插件扩展创建源集的数量。 我怎样才能在应用方法中做到这一点 以下是我的代码片段(两者都不起作用)、标签-来自扩展名的列表: 一, 二, 我知道这很旧,但这是我遇到的。我需要创建一个插件来创建一个源集。我以前在我的build.gradle sourceSets { myNewSet { groovy.srcDir file("${project.myNewSet_src}") resources.srcDir file("${
我知道这很旧,但这是我遇到的。我需要创建一个插件来创建一个源集。我以前在我的
build.gradle
sourceSets {
myNewSet {
groovy.srcDir file("${project.myNewSet_src}")
resources.srcDir file("${project.myNewSet_resources}")
}
}
因此,当我创建插件时,在apply
方法中,我有:
project.getSourceSets().create("myNewSet", {
groovy.srcDir new File("${project.getProjectDir()}/${project.myNewSet_src}")
resources.srcDir new File("${project.getProjectDir()}/${project.myNewSet_resources}")
});
希望这对其他人有所帮助。下面是一个例子,它在Kotlin Gradle DSL中是什么样子的,在多项目构建中配置Spring Boot的BootRun任务项目范围:
任务{
withType{
val createGitRevisionReport:GitRevisionReportTaskBythis@tasks
dependsOn(createGitRevisionReport)
val sourceset=project.convention.getPlugin(JavaPluginConvention::class.java).sourceset
val additionalSourceSet=sourceset.create(“bootRunAdditionalSourceSet”){
resources.srcDir(createGitRevisionReport.gitRevisionReportDir)
}
sourceResources(additionalSourceSet)
}
}
不工作?这到底是什么意思?@Opal谢谢你的评论。若我尝试在应用插件的项目上运行“./gradlew build”,它将找不到“${label.lower}srccomile”任务。在最新的IntellijIdea中,“src_custom/${label.lower}”文件夹未标记为源文件夹。将不会创建您正在编写的任务。添加的源代码将使用标准任务进行编译。你能提供SSCCE吗?这是一个很好的例子,说明了您想要实现什么?@Opal In build.gradle在我的java项目中,我可以“apply plugin:java”,然后使用第一个变体:“sourceset{…}”。在本例中,我为每个标签(标签-字符串列表)提供了正确的“${label}Src”源集和“#{label}srccomile”任务。现在,我想将此代码移动到自定义插件,并在项目的build.gradle中仅使用“apply plugin:my custom plugin”
sourceSets {
myNewSet {
groovy.srcDir file("${project.myNewSet_src}")
resources.srcDir file("${project.myNewSet_resources}")
}
}
project.getSourceSets().create("myNewSet", {
groovy.srcDir new File("${project.getProjectDir()}/${project.myNewSet_src}")
resources.srcDir new File("${project.getProjectDir()}/${project.myNewSet_resources}")
});