Gradle - Рекурсивные подпроекты

Предположим, я хотел использовать Gradle с такой структурой проекта, как:

RootProject
\-- SubProjectA
    \-- SubProjectAA
    \-- SubProjectAB

Как я могу это достичь?

То, что я пробовал, довольно просто. Я создал все каталоги со структурой, описанной выше:

RootProject
\-- SubProjectA
    \-- SubProjectAA
        \-- build.gradle
    \-- SubProjectAB
        \-- build.gradle
    \-- build.gradle
    \-- settings.gradle
\-- build.gradle
\-- settings.gradle

RootProject/settings.gradle:

include "SubProjectA"

RootProject/SubProjectA/settings.gradle:

include "SubProjectAA", "SubProjectAB"

Есть две вещи, которые я пробовал. Сначала я попытался импортировать проект в Eclipse, который не обнаружил SubProjectAA и SubProjectAB. Ошеломленный, я побежал gradle projects в RootProject и получил этот вывод:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'RootProject'
\--- Project ':SubProjectA'

И все же, думая, что я допустил ошибку, я попробовал запустить ту же команду в SubProjectA и получил:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'RootProject'
\--- Project ':SubProjectAA'
\--- Project ':SubProjectAB'

Я предполагаю, что разрешающие подпроекты не идут рекурсивно. Есть ли обходной путь для этого?

Каждый пример замаскирован именами образцов, извините, если я допустил какую-либо ошибку.

Спасибо!

Ответы

Ответ 1

У вас может быть только один settings.gradle. Как правило, он содержит что-то вроде:

include "SubProjectA:SubProjectAA"
include "SubProjectA:SubProjectAB"

Более подробную информацию можно найти в главе "Многопроектные сборки" руководства Gradle.