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