【问题标题】:Gradle v4 to Gradle v5 Update - separate output directories for each JVM languageGradle v4 到 Gradle v5 更新 - 每种 JVM 语言的单独输出目录
【发布时间】:2019-09-27 13:26:17
【问题描述】:

我希望将 Gradle 从 v4 更新到 v5,但我在 v4 上收到以下警告:

Gradle 现在为每种 JVM 语言使用单独的输出目录,但是 此构建假定来自源的所有类的单个目录 放。此行为已被弃用并计划删除 在 Gradle 5.0 中。

所以我认为我需要在更新到 v5 之前摆脱这个警告。问题是我不确定它要我做什么。如何更改构建,以便它不会为源集中的所有类假定单个目录?

我尝试将以下内容添加到 build.gradle,但仍然收到警告:

sourceSets {
    main {
        // Compiled Java classes should use this directory
        java.outputDir = new File(buildDir, "classes/java/main")
    }
}

【问题讨论】:

标签: android android-studio gradle android-gradle-plugin gradle-plugin


【解决方案1】:

你不需要在构建脚本中添加任何东西。你只需要组织你的项目like this

├── build.gradle
├── settings.gradle
└── src
    └── main
        ├── java
        │   └── HelloWorld.java
        └── kotlin
            └── Utils.kt

【讨论】:

  • 我已经查看了它抱怨的模块,哪个是后端,并且结构已经像这样设置:backend> src>main>java
【解决方案2】:

当您使用 sourceSet.output.classesDir 时会显示该弃用消息,这会返回 File

这已在 Gradle 4.x 中被替换,并在 Gradle 5.x 中被sourceSet.output.classesDirs 删除(注意末尾的s),它返回一个FileCollection

所以你需要弄清楚你在 buildscript 中的什么地方使用它,如果没有,是哪个插件。请注意,新方法已在 Gradle 4.x 中可用,因此您应该能够升级您的代码或插件版本以消除弃用消息。

狩猎愉快!

【讨论】:

    猜你喜欢
    • 2019-09-26
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多