如何使用Quarkus设置多模块gradle项目?
在根如何使用Quarkus设置多模块gradle项目?,gradle,quarkus,Gradle,Quarkus,在根build.gradle.kts中应用Quarkus插件的多模块gradle项目在:quarkusBuild步骤失败,出现NoTouchElementException: > Task :quarkusBuild FAILED building quarkus jar FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':quarkusBuild'. >
build.gradle.kts
中应用Quarkus插件的多模块gradle项目在:quarkusBuild
步骤失败,出现NoTouchElementException
:
> Task :quarkusBuild FAILED
building quarkus jar
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':quarkusBuild'.
> java.util.NoSuchElementException
根build.gradle.kts
如下所示:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.72"
id("io.quarkus") version "1.9.1.Final"
}
group = "org.example"
version = "1.0-SNAPSHOT"
allprojects {
repositories {
mavenCentral()
}
}
subprojects {
apply {
plugin("kotlin")
}
dependencies {
implementation(kotlin("stdlib"))
}
}
但是,将行id(“io.quarkus”)版本“1.9.1.Final”
移动到子项目的build.gradle.kts
,构建成功。quarkus构建步骤似乎是在声明插件的地方运行的,而不是在实际应用插件的地方
理想情况下,我希望在根目录中声明一次插件,然后将其仅应用于子项目,而不是针对根项目执行插件,因为根项目显然没有任何可构建的内容
有什么想法吗?您需要添加
apply false
plugins {
kotlin("jvm") version "1.3.72" apply false
id("io.quarkus") version "1.9.1.Final" apply false
}
您的构建还假设每个子模块都是Kotlin模块,这可能是真的,也可能不是真的。您可以执行类似的操作,将特定配置应用于特定任务:
subprojects { subproject ->
subproject.tasks.withType(JavaCompile).configureEach {
sourceCompatibility = JavaVersion.VERSION_11
}
subproject.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11
}
}
}