Мой вопрос касается межпроектных зависимостей и результирующих JAR-файлов
Структура проекта схожа с этим
root
-- :a
-- :b
-- :c
-- :d
Зависимости следующие (:d
не имеет зависимостей)
a -> b -> c -> d
Компиляция :d
содержит все файлы *.class
в :d
.Компиляция :c
содержит источники, сгенерированные для :d
и :c
.Все идет нормально.
Однако, когда я компилирую root
, он генерирует JAR для :d
, затем компилирует и генерирует JAR для :c
, который включает в себя CLASS
файлы :d
.Это продолжается до самого верха.
Проект root
по-прежнему будет содержать скомпилированные подпроекты только один раз, но папка build\libs
также будет содержать все промежуточные JAR-файлы.
Iзапустили сборку с --profile
и заметили, что упаковка JAR-файлов заняла довольно много времени из общего процесса сборки.
Зависимые проекты включены в соответствующие файлы build.gradle
, подобные этим (Пример для :b
и :c
)
Проект C
dependencies {
compile project(':d')
}
Проект B
dependencies {
compile project(':c')
}
На самом деле весь проект состоит примерно из 100 подпроектов, и существует большое количество взаимозависимых проектов.
Есть ли способ скомпилировать CLASS
файлы без создания JAR?
Любая помощь с этим будет принята с благодарностью.
Указанный возможный дублирующий вопрос не относится к многопроектным сборкам или интер-проектные зависимости.