У меня есть следующий проект дерево:Понимание Gradle Мультипроект здание
root
|
|--MP
| |
| |---build.gradle
|
|--API
|
|---build.gradle
|
|---settings.gradle
MP :: buiild.gradle:
dependencies {
compile project(':API')
}
корень: build.gradle:
subprojects{
apply plugin : 'java'
repositories{
mavenCentral()
}
version = '1.0'
jar{
manifest{
attributes 'Gradle': 'Multiproject'
}
}
}
корень: : settings.gradle:
include 'API', 'MP'
Дело в том, что мы удалим один из этих трех файлов. gradle build
Задача не удалась. Поэтому мне непонятно, как java plugin
строит проект. Я бегу gradle build
для MP::build.gradle
, следующий вывод был получен:
:API:compileJava
:API:processResources UP-TO-DATE
:API:classes
:API:jar
:MP:compileJava
:MP:processResources UP-TO-DATE
:MP:classes
:MP:jar
:MP:assemble
:MP:compileTestJava UP-TO-DATE
:MP:processTestResources UP-TO-DATE
:MP:testClasses UP-TO-DATE
:MP:test UP-TO-DATE
:MP:check UP-TO-DATE
:MP:build
Итак, первым, что мы должны делать, когда мы бежим gradle build
для MP::build.gradle
чтобы решить все dependecies. Насколько я понимаю, это означает загрузку банок из внешних репозиториев и, при необходимости, компиляцию файлов jar
из отдельных проектов. В моем случае просто получить API
проект jar
-файл.
Так что мой вопрос в том, что является подзапросом действий для компиляции этого jar
. Что произойдет, когда gradle
наткнулся на compie project(':API')
. Он ищет файл gradle.settings
и сообщает об ошибке, если он отсутствует или он ищет build.gradle
в корневом каталоге в первую очередь?
Позвольте мне задать вам вопрос. Где вы нашли ответ на мой вопрос в первых двух ссылках, которые вы указали? Не могли бы вы привести фактический ответ? –
Просьба предоставить некоторые цитаты, поскольку ссылки приходят и уходят в сети – cfrick
@cfrick. Эти вопросы возникают, когда я читал главу 7. Я создаю эти проекты, но нет никаких подробностей о том, как градиль точно работает с подпроекты. Я хотел бы понять, как это работает в деталях. –