1
我正在編寫自定義插件,它應該創建多個源代碼集取決於插件擴展。 如何在應用方法中做到這一點?如何在自定義插件中創建源代碼集
這裏是我的代碼片段(包括不工作),標籤 - 從列表擴展:
1.
project.sourceSets {
labels.each { info ->
"${info.lower}Src" {
java.srcDirs = ['src'] + info.srcPostfix.collect { postfix -> "src_custom/${postfix}" }
}
}
main { java.srcDirs = ['src'] + labels.collect { info -> "src_custom/${info.lower}" } }
test { java.srcDirs = ['test'] + labels.collect { info -> "test_custom/${info.lower}" } }
}
2.
labels.each { info ->
SourceSet modelSrc = project.sourceSets.create("${info.lower}Src")
modelSrc.getJava().setSrcDirs(['src'] + info.srcPostfix.collect { postfix -> "src_custom/${postfix}" })
}
SourceSetContainer sourceSets = project.convention.getPlugin(JavaPluginConvention).sourceSets
SourceSet mainSourceSet = sourceSets.getByName(MAIN_SOURCE_SET_NAME)
mainSourceSet.getJava().setSrcDirs(['src'] + labels.collect { info -> "src_custom/${info.lower}" })
SourceSet testSourceSet = sourceSets.getByName(TEST_SOURCE_SET_NAME)
testSourceSet.getJava().setSrcDirs(['test'] + labels.collect { info -> "test_custom/${info.lower}" })
不工作?這究竟意味着什麼? – Opal
@Opal感謝您的評論。如果我嘗試在應用我的插件的項目上運行「./gradlew build」,則無法找到「$ {label.lower} SrcCompile」任務。並且在最新的IntellijIdea「src_custom/$ {label.lower}」文件夾中沒有標記爲源文件夾。 – Volkman
您正在撰寫的任務不會被創建。添加的源代碼將使用標準任務進行編譯。你能否提供SSCCE?一個很好的例子來說明你想要實現的目標? – Opal