Gradle 格拉德尔·斯普利特“;src/main/java“;及;src/main/kotlin“的;分为子模块

Gradle 格拉德尔·斯普利特“;src/main/java“;及;src/main/kotlin“的;分为子模块,gradle,intellij-idea,build.gradle,Gradle,Intellij Idea,Build.gradle,我的项目从一个build.gradle开始(没有多个项目)。该项目有src/test/java和src/test/kotlin文件夹。 到目前为止,我已经为这两个项目应用了配置 主要问题是与jdk9的java子模块和jdk8的kotlin子模块不兼容。显示此错误消息 无法使用工具链“JDK 8(1.8)”以平台“Java SE 9”为目标 我想申请: 仅适用于特定配置(sourceCompatibility=1.9) 与此配置相同(kotlinOptions.jvmTarget=“1.8”)

我的项目从一个build.gradle开始(没有多个项目)。该项目有
src/test/java
src/test/kotlin
文件夹。 到目前为止,我已经为这两个项目应用了配置

主要问题是与jdk9的
java
子模块和jdk8的
kotlin
子模块不兼容。显示此错误消息

无法使用工具链“JDK 8(1.8)”以平台“Java SE 9”为目标

我想申请:

  • 仅适用于特定配置(sourceCompatibility=1.9)
  • 与此配置相同(kotlinOptions.jvmTarget=“1.8”)
如何在不移动文件的情况下将两个文件夹(java和kotlin)拆分为子模块?文件夹不必拆分为子模块。我只想应用不同的编译选项


项目

使用
源集

sourceSets {

                test {
                    kotlin {
                        srcDirs = ["src/test/kotlin"]
                    }
                    java {
                        srcDirs = ["src/test/java"]
                    }
                }
            }

使用
sourceset

sourceSets {

                test {
                    kotlin {
                        srcDirs = ["src/test/kotlin"]
                    }
                    java {
                        srcDirs = ["src/test/java"]
                    }
                }
            }

我找到了如何在IntelliJ中运行的答案

基本上,我尝试使用gradle配置来运行。但是Intellij的测试失败了,但gradle没有。 现在我使用IntelliJ配置而不是gradle运行测试

这是半个令人满意的答案


你可以看到我的测试是如何在中进行的,我找到了如何在IntelliJ中运行的答案

基本上,我尝试使用gradle配置来运行。但是Intellij的测试失败了,但gradle没有。 现在我使用IntelliJ配置而不是gradle运行测试

这是半个令人满意的答案


您可以在和中查看我的测试,您可以更精确地了解如何将特定JDK版本应用于它们吗?@RaymondChenon您可以向我展示“gradle build-i”的结果吗?我无法仅通过拥有build.gradle文件来复制错误。gradle文件链接在@RaymondChenon的上方,但我可以在我的空文件夹上运行“gradle build”,它没有返回任何错误。因此,仅build.gradle文件不足以复制您的问题。请克隆项目并在根文件夹中使用
/gradlew build
。Gradlew是在项目中使用gradle版本的包装器。而
gradle
命令在您的系统上使用该版本。您能更准确地说明如何将特定的JDK版本应用于它们吗?@RaymondChenon您能告诉我“gradle build-i”的结果吗?我无法仅通过拥有build.gradle文件来复制错误。gradle文件链接在@RaymondChenon的上方,但我可以在我的空文件夹上运行“gradle build”,它没有返回任何错误。因此,仅build.gradle文件不足以复制您的问题。请克隆项目并在根文件夹中使用
/gradlew build
。Gradlew是在项目中使用gradle版本的包装器。而
gradle
命令使用系统上的版本。