Por que o Gradle precisa de um arquivo settings.gradle?

Vou converter meus projetos Android de Ant para Gradle.

Meu espaço de trabalho do Eclipse é muito simples:

Workspace
     MyApp
     MyApp-AndroidLibrary

Quando adiciono um arquivo build.gradle no MyApp, desejo fazer referência ao meu projeto de biblioteca do Android:

apply plugin: 'android'

dependencies {
     compile fileTree(dir: 'libs', include: '*.jar')
     compile project(':MyApp-AndroidLibrary')
}

Quando executo o gradle build, ocorre o erro "Projeto com o caminho ': MyApp-AndroidLibrary' não pôde ser encontrado no projeto raiz", pesquisei por isso e achei necessário configurar um arquivo "settings.gradle" no meu espaço de trabalho diretório, para adicionar

include ":MyApp"
include ":MyApp-AndroidLibrary"

Isso me parece muito ruim, por que o Gradle precisa de um arquivo settings.gradle, por que não apenas extrair os projetos que defini nas dependências?

E o queinclude realmente significa? E se eu tiver outro aplicativo e algumas outras bibliotecas compartilhadas no espaço de trabalho, a estrutura poderá ser assim:

Workspace
     App1
     App2
     Library1(Used by App1 & App2)
     Library2(Used only by App1)
     Library3(Used only by App2)

Como existe apenas um arquivo settings.gradle, tive que adicioná-los todos ao settings.gradle. Isso não cheira bem.

E sim, eu posso reorganizar a estrutura para transformar a Library2 em um diretório filho do App1 e a Library3 em um diretório filho do App2, mas e a Library1?

Algum comentário sobre isso?

questionAnswers(2)

yourAnswerToTheQuestion