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?