gpt4 book ai didi

gradle - "src/main/kotlin"中的 Kotlin 源文件无法解析其他 gradle 模块类

转载 作者:行者123 更新时间:2023-12-03 05:05:19 26 4
gpt4 key购买 nike

我有一个带有 gradle 的多模块项目,现在可以正常工作了一段时间。
现在我开始重构我的旧 java 代码并使用一些 kotlin 类。
不幸的是,我对这种方法有一个依赖解决问题。

所以我保证依赖 :domain用gradle正确解决。它适用于 src/main/java 中的所有源文件如果它们是 .java 文件。但是在 src/main/kotlin 中使用它时他们不解决。这仅适用于项目模块依赖项。外部库在这两种文件夹结构中都有效。将我的 .kt 文件放入 src/main/java也不工作。

所以这是失败模块的gradle.build.kts文件:

group = "com.my.company"

plugins {
kotlin("jvm")
}
tasks.compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
tasks.compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}

dependencies {
implementation(kotlin("stdlib"))
implementation(project(":domain"))
implementation("org.json:json")
implementation("commons-io:commons-io")
}


这是 build.gradle.kts:domain模块:
plugins {
id("org.openrepose.gradle.plugins.jaxb") version "2.5.0"
}

group = "com.my.company"

tasks.checkstyleMain {
exclude("**/gen/**")
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.springframework.boot:spring-boot-starter-batch")
implementation("org.hsqldb:hsqldb")
implementation("org.springframework:spring-oxm")
implementation("org.apache.commons:commons-lang3")
implementation("org.json:json")

implementation("org.springframework.boot:spring-boot-starter-json")

annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
implementation("org.springframework.boot:spring-boot-starter-amqp")
implementation("org.springframework.boot:spring-boot-starter-batch")
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
implementation("javax.annotation:javax.annotation-api")
implementation("org.apache.commons:commons-text")
implementation("commons-io:commons-io")
implementation("org.springframework.cloud:spring-cloud-gcp-starter-logging")
implementation("org.springframework.cloud:spring-cloud-gcp-starter-trace")

implementation("javax.activation:activation")
implementation("javax.xml.bind:jaxb-api")
implementation("com.sun.xml.bind:jaxb-impl")
implementation("org.springframework.cloud:spring-cloud-stream")

testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.amqp:spring-rabbit-test")
testImplementation("org.springframework.amqp:spring-rabbit-junit")

jaxb("com.sun.xml.bind:jaxb-xjc")
jaxb("com.sun.xml.bind:jaxb-impl")
jaxb("javax.xml.bind:jaxb-api")
jaxb("javax.activation:activation")
}

sourceSets {
main {
java {
srcDirs("src/gen/java")
}
}
}

jaxb {
bindingsDir = "src/main/resources/bindings"
bindings = listOf("bindings.xjb")
xsdDir = "src/main/resources/xsd"

xjc {
accessExternalSchema = "file"
generateEpisodeFiles = false
destinationDir = "src/gen/java"
}
}

tasks.clean {
delete("src/gen")
}

tasks.compileJava {
dependsOn("xjc")
}

我不知道为什么它不起作用。可能是这个 jaxb生成器插件的东西可能会在这里引起一些问题?只是一个猜测。

编辑 : 根 gradle.build.kts : https://pastebin.com/nNTx1fKe

最佳答案

确保将 Kotlin JVM 插件应用于 :domain模块。请注意 kotlin("jvm") version "1.3.61"在你的根目录gradle.build.kts不适用于子项目!你应该有类似的东西:

subprojects {
apply<KotlinPlatformJvmPlugin>()

tasks {
withType<KotlinCompile> {
kotlinOptions.jvmTarget = "11"
}
}
}

关于gradle - "src/main/kotlin"中的 Kotlin 源文件无法解析其他 gradle 模块类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com