Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin源文件在“中”;src/main/kotlin“的;can';无法解析其他gradle模块类_Gradle_Kotlin - Fatal编程技术网

Kotlin源文件在“中”;src/main/kotlin“的;can';无法解析其他gradle模块类

Kotlin源文件在“中”;src/main/kotlin“的;can';无法解析其他gradle模块类,gradle,kotlin,Gradle,Kotlin,我有一个与gradle合作的多模块项目,该项目目前运行良好。 现在我开始重构我的旧java代码,并使用了一些kotlin类。 不幸的是,我用这种方法解决了一个依赖性问题 所以我保证依赖项:domain可以用gradle正确地解决。它可以处理src/main/java中的所有源文件(如果它们是.java文件)。但是,在src/main/kotlin中使用它时,它们不会解析。这仅适用于项目模块依赖项。外部库在这两种文件夹结构中都可以工作。将我的.kt文件放入src/main/java也不起作用 这就

我有一个与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")
}

这是
:domain
模块的
build.gradle.kts

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
generator插件的东西可能会引起一些问题吗?只是猜测而已


编辑:root
gradle.build.kts

确保将Kotlin JVM插件应用于
:域
模块。请注意,根目录中的
gradle.build.kts
中的
kotlin(“jvm”)版本“1.3.61”
不会将其应用于子项目!您应该有如下内容:

subprojects {
    apply<KotlinPlatformJvmPlugin>()

    tasks {
        withType<KotlinCompile> {
            kotlinOptions.jvmTarget = "11"
        }
    }
}
子项目{
应用()
任务{
withType{
kotlinOptions.jvmTarget=“11”
}
}
}

您可以发布根项目的build.gradle吗。kts@kaushik在问题中添加了
tasks.withType().configureEach{kotlinOptions{jvmTarget=“11”}
我认为这是编译kotlin的正确方法。试着用这个代替任务。compileKotlin@kaushik“正确”的格式是什么意思?我需要在哪里使用这个?他在提到的子项目中使用了
plugins{kotlin(“jvm”)}
,其他项目也使用Java,我想我看不到。我发现它只适用于根项目。