如何解决Gradle 插件仅适用于加载到根项目中的某些项目
我有一个第三方 Gradle 插件,我只想将它应用到我的项目的某个子集,那些以 -wsdl
结尾的:
build.gradle.kts 根目录
subprojects {
...
...
if (project.name.endsWith("-wsdl")) {
apply {
plugin("org.meanwhileinhell.wsdlsourcegenerator")
}
dependencies {
...
}
wsdlsourcegenerator {
...
}
tasks.withType<org.meanwhileinhell.wsdlsourcegenerator.WsdlSourceGeneratorTask> {
afterEvaluate {
val wsdlLocations = extra["wsdlLocations"] as List<String>
val wsdlBindings = extra["wsdlBindings"] as List<String>
val wsdlAdditionalOptions = extra["wsdlAdditionalOptions"] as List<String>
generatedSourceDir = file("$projectDir/generatedsources")
extension.wsdlDir = file("$projectDir/wsdl")
extension.wsdlsToGenerate = gatherWsdlFiles(wsdlLocations,wsdlBindings,wsdlAdditionalOptions)
}
tasks.named("compileJava") {
dependsOn("wsdlsourcegenerator")
sourceSets {
main {
java {
srcDirs(listOf("generatedsources"))
}
}
}
}
}
}
}
默认位置是:
private static final DEFAULT_WSDL_DIR = "src/main/resources/wsdl"
但是,当我运行构建时,它抛出了根项目中的 WSDL 目录不存在的错误:
$ gw clean build
Type 'WsdlSourceGeneratorTask' property 'extension.wsdlDir' specifies directory '/Users/meanwhileinhell/java/my-server/src/main/resources/wsdl' which doesn't exist.
为什么要将此插件应用于根项目,有什么办法可以阻止它发生?
Gradle v7.0.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。