Gradle - compilação de vários projetos
O Gradle pode gerenciar projetos menores e maiores com facilidade. Projetos pequenos têm um único arquivo de construção e uma árvore de origem. É muito fácil digerir e entender um projeto que foi dividido em módulos menores e interdependentes. O Gradle oferece suporte perfeito para esse cenário de criação de vários projetos.
Estrutura para construção de vários projetos
Essas construções vêm em todas as formas e tamanhos, mas eles têm algumas características comuns -
UMA settings.gradle arquivo no diretório raiz ou mestre do projeto.
UMA build.gradle arquivo no diretório raiz ou mestre.
Diretórios filho que têm seus próprios *.gradle arquivos de construção (algumas construções de vários projetos podem omitir scripts de construção de projetos filho)
Para listar todos os projetos no arquivo de construção, você pode usar o seguinte comando.
C:\> gradle -q projects
Resultado:
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks
O relatório mostra a descrição de cada projeto, se especificado. Você pode usar o seguinte comando para especificar a descrição. Cole nobuild.gradle Arquivo.
description = 'The shared API for the application'
Especificando uma configuração geral de construção
Em um build.gradle no arquivo root_project, as configurações gerais podem ser aplicadas a todos os projetos ou apenas aos subprojetos.
allprojects {
group = 'com.example.gradle'
version = '0.1.0'
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
}
Isso especifica um comum com.example.gradle grupo e o 0.1.0versão para todos os projetos. osubprojects encerramento aplica configurações comuns para todos os subprojetos, mas não para o projeto raiz, como o allprojects o fechamento sim.
Configurações e dependências específicas do projeto
O nucleo ui e util subprojetos também podem ter seus próprios build.gradle arquivo, se eles tiverem necessidades específicas, que ainda não são aplicadas pela configuração geral do projeto raiz.
Por exemplo, o projeto da interface do usuário geralmente tem uma dependência do projeto principal. Portanto, o projeto de interface do usuário precisa de seu própriobuild.gradle arquivo para especificar esta dependência.
dependencies {
compile project(':core')
compile 'log4j:log4j:1.2.17'
}
As dependências do projeto são especificadas com o método do projeto.