【问题标题】:Gradle split "src/main/java" and "src/main/kotlin" into submodulesGradle 将“src/main/java”和“src/main/kotlin”拆分为子模块
【发布时间】:2020-09-10 20:24:24
【问题描述】:

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

主要问题是 java 子模块与 JDK 9 不兼容,kotlin 子模块与 JDK 8 不兼容。带有此错误消息

无法使用工具链:“JDK 8 (1.8)”定位平台:“Java SE 9”。

我要申请:

  • 仅限src/test/java 特定配置 (sourceCompatibility = 1.9)
  • src/test/kotlin 这个配置相同 (kotlinOptions.jvmTarget = "1.8")

如何在不移动文件的情况下将两个文件夹(java 和 kotlin)拆分为子模块? 文件夹不必拆分为子模块。我只想应用不同的编译选项。

项目build.gradle is there

【问题讨论】:

    标签: gradle intellij-idea build.gradle


    【解决方案1】:

    使用sourceSets

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

    【讨论】:

    • 你能更准确地说如何将特定的 JDK 版本应用到他们身上吗?
    • @RaymondChenon 你能告诉我“gradle build -i”的结果吗?我无法通过只有 build.gradle 文件来复制错误。
    • @RaymondChenon 事情是我可以在我的空文件夹上运行“gradle build”并且它没有返回错误。因此,仅 build.gradle 文件不足以让我复制您的问题。
    • 克隆项目并在根文件夹中使用./gradlew build。 Gradlew 是在项目中使用 gradle 版本的包装器。而gradle 命令使用您系统上的版本。
    【解决方案2】:

    我找到了如何在 IntelliJ 中运行的答案,https://stackoverflow.com/a/58796344/311420

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

    这是一个满意的答案。

    你可以在Circle CITravis CI看到我的测试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 2018-08-08
      • 2016-06-22
      • 2014-09-25
      • 2021-07-24
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多