#java #gradle #project-management #project-structure #multi-project
#java #gradle #управление проектами #проект-структура #многопроектный
Вопрос:
В моем исходном коде есть мини-приложение, которое я пытаюсь перенести в отдельный подпроект. Однако мини-приложение зависит от основного проекта. Как можно настроить build.gradle
файл, чтобы отразить это?
Вот моя структура каталогов:
/
src/
main/java/<main project source>
build.gradle
settings.gradle
subproject/
src/
main/java/<subproject source>
build.gradle
Я думал, что можно было бы сделать что-то подобное в build.gradle
файле для подпроекта:
build.dependsOn ":build"
Но это, похоже, не работает.
Комментарии:
1. не могли бы вы пояснить, что вы подразумеваете под «мини-приложение зависит от основного проекта» здесь?
2. @PerryFowler По сути, основной проект — это библиотека, а подпроект — это реализация этой библиотеки.
Ответ №1:
Для этого необходимо правильно настроить зависимости компиляции.
Оператор build.dependsOn ":build"
будет устанавливать только зависимости задач (т. Е. :subproject:build выполняется после основного проекта «: build»). Вероятно, в этом нет необходимости, сборка основного проекта выполняется до сборки подпроекта в любом случае. Он не будет настраивать зависимости компиляции (т. Е. Какие классы / библиотеки включать).
Вместо этого (или дополнительно) добавьте зависимость компиляции к вашему основному проекту в вашем subproject/build.gradle
файле:
dependencies {
compile project(':')
}