Groovy 原因:没有这样的属性:sourceset for class:org.gradle.api.plugins.Convention
我运行了Gradle Cookbook中的代码片段Groovy 原因:没有这样的属性:sourceset for class:org.gradle.api.plugins.Convention,groovy,build,build-process,gradle,Groovy,Build,Build Process,Gradle,我运行了Gradle Cookbook中的代码片段 apply plugin: 'java' task "create-dirs" << { convention.sourceSets.all*.java.srcDirs*.each { it.mkdirs() } convention.sourceSets.all*.resources.srcDirs*.each { it.mkdirs() } } 应用插件:“java” 任务“创建目录”好的,对不起。我明白了
apply plugin: 'java'
task "create-dirs" << {
convention.sourceSets.all*.java.srcDirs*.each { it.mkdirs() }
convention.sourceSets.all*.resources.srcDirs*.each { it.mkdirs() }
}
应用插件:“java”
任务“创建目录”好的,对不起。我明白了
一定是
应用插件:“java”
任务“创建目录”该属性现在已全部删除,因此您可以按以下方式执行:
task "create-dirs" {
def defaultPackage = "org.akash.gradle";
['java', 'groovy', 'resources'].each { String dir ->
sourceSets*."$dir".srcDirs*.each { dir1 ->
def newDir = new File(dir1, defaultPackage);
newDir.mkdirs();
}
}
}
如果我需要编写自己的插件来创建结构,如何将结构链接到源集?
apply plugin: 'java'
task "create-dirs" << {
sourceSets.all*.java.srcDirs*.each { it.mkdirs() }
sourceSets.all*.resources.srcDirs*.each { it.mkdirs() }
}
task "create-dirs" {
def defaultPackage = "org.akash.gradle";
['java', 'groovy', 'resources'].each { String dir ->
sourceSets*."$dir".srcDirs*.each { dir1 ->
def newDir = new File(dir1, defaultPackage);
newDir.mkdirs();
}
}
}