Несколько папок buildSr c с Kotlin Gradle и Git субмодулем - PullRequest
1 голос
/ 30 апреля 2020

У меня есть Android проект с Kotlin Gradle (основной проект). Этот проект также содержит подмодуль Git, в котором также используется Kotlin Gradle (проект подмодуля).

Основной проект имеет папку buildSrc с классом Configuration внутри. Проект подмодуля также имеет свою собственную папку buildSrc с классом Configuration внутри.

Основной проект использует module1 и module2 из проекта подмодуля. Эти модули используют класс Configuration из проекта субмодуля в файлах build.gradle.kts.

Здесь возникает проблема : когда я подключаю module1 и module2 к своему основному проекту , ошибка компиляции возникает из-за того, что папка buildSrc из проекта подмодуля не скомпилирована, но будет скомпилирована buildSrc из основного модуля.

Следующий вопрос : как Могу ли я объединить buildSrc папки, и если я не могу, как мне справиться с этой ситуацией?

Примечание : я не хочу просто копировать-вставлять классы из подмодуля * Папка 1030 * на основной 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')

1 Ответ

1 голос
/ 30 апреля 2020

В данной сборке Gradle может быть только один buildSrc.

Здесь, однако, вы пытаетесь составить две независимые сборки Gradle, соединив их в одну.

Я бы Вместо этого рекомендуем взглянуть на Составные сборки Gradle , которые позволят вам составить две полные сборки, каждая со своими buildSrc.

.
...