Rom*_*nko 5 java android gradle kotlin gradle-kotlin-dsl
我有一个带有 Kotlin Gradle 的 Android 项目(主项目)。该项目还包含 Git 子模块,该子模块也使用 Kotlin Gradle(子模块项目)。
主项目有一个buildSrc文件夹,Configuration里面有class。子模块项目也有自己的buildSrc文件夹,Configuration里面有类。
主项目使用来自子模块项目的module1和。module2这些模块使用文件Configuration中子模块项目中的类build.gradle.kts。
问题来了:当我连接module1到module2主项目时,会出现编译错误,因为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
Run Code Online (Sandbox Code Playgroud)
主要项目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')
Run Code Online (Sandbox Code Playgroud)
在给定的 Gradle 构建中,只能有一个buildSrc.
然而,您在这里尝试通过将两个独立的 Gradle 构建拼接在一起来组成它们。
我建议您查看Gradle 复合构建,它将允许您组成两个完整的构建,每个构建都有自己的buildSrc.
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |