【问题标题】:Multiple buildSrc folders with Kotlin Gradle and Git submodule带有 Kotlin Gradle 和 Git 子模块的多个 buildSrc 文件夹
【发布时间】:2020-08-14 14:18:04
【问题描述】:

我有一个带有 Kotlin Gradle 的 Android 项目(主项目)。该项目还包含 Git 子模块,该子模块也使用 Kotlin Gradle(子模块项目)。

主项目有一个buildSrc 文件夹,里面有Configuration 类。子模块项目也有自己的buildSrc 文件夹,里面有Configuration 类。

主项目使用子模块项目中的module1module2。这些模块使用build.gradle.kts 文件中子模块项目中的Configuration 类。

问题来了:当我将module1module2 连接到我的主项目时,会出现编译错误,因为子模块项目中的buildSrc 文件夹没有被编译,但是主模块中的buildSrc 将被编译。

下一个问题:如何合并buildSrc文件夹,如果不能,我应该如何处理这种情况?

注意:我不想只是将类从子模块的 buildSrc 文件夹复制粘贴到主模块的 buildSrc。我想在其他项目中重用这个子模块。

这是简化的项目结构:

+-- app/
+-- android-sub/ (submodule)
|   +-- app/
|   +-- module1/
|       +-- build.gradle.kts
|   +-- module2/
|       +-- build.gradle.kts
|   +-- build/
|   +-- buildSrc/
|       +-- build/
|       +-- build.gradle.kts
|       +-- src/main/java
|           +-- Configuration
|    +-- gradle/
|    +-- build.gradle.kts
|    +-- gradlew
|    +-- gradlew.bat
|    +-- gradle.properties
|    +-- settings.gradle.kts
+-- build/
+-- buildSrc/
|   +-- build/
|   +-- build.gradle.kts
|   +-- src/main/java/
|       +-- Configuration
+-- gradle/
+-- build.gradle.kts
+-- gradle.properties
+-- gradlew
+-- gradlew.bat
+-- local.properties
+-- settings.gradle.kts

主项目的settings.gradle.kts

include ':app', ':module1', ':module2'
project(':module1').projectDir = new File(rootDir, 'android-sub/module1')
project(':module2').projectDir = new File(rootDir, 'android-sub/module2')

【问题讨论】:

    标签: java android kotlin gradle gradle-kotlin-dsl


    【解决方案1】:

    在给定的 Gradle 构建中,只能有一个 buildSrc

    但是,您正在尝试通过将它们拼接在一起来组合两个独立的 Gradle 构建。

    我建议改为查看Gradle composite builds,这将允许您编写两个完整的构建,每个构建都有自己的buildSrc

    【讨论】:

      猜你喜欢
      • 2013-07-28
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2021-08-15
      • 2015-12-25
      相关资源
      最近更新 更多