Gradle
Configurations e multi-projects
Configurations
● annotationProcessor: constrói as anotações para serem usadas em tempo de compilação.
Exemplo: lombok;
● compileOnly: dependências que são executadas somente em tempo de compilação. Exemplo:
lombok.
● runtimeOnly: dependências que são executadas somente em tempo de execução. Exemplo:
H2
● api: indica que as dependências baixadas com essa configuração estão disponíveis para toda
a aplicação.
● implementation: indica que a dependência está disponível somente ao projeto em que ela está
inserida.
● testImplementation: dependências executadas para compilar testes. Exemplo: JUnit
Exemplo
Multi-projects
É quando um projeto é dividido em subprojetos, separando suas responsabilidades,
tornando eles interdependentes entre si.
Benefícios:
● os módulos podem ser atualizados individualmente;
● tornam os testes bem mais eficientes do que em uma aplicação monolítica;
Gradle multi-projects
● include ‘:subproject’
● dependencies{compile project: ‘:subproject’}
● allprojects: bloco onde são aplicadas configurações para todos os subprojetos e o
root project da aplicação;
● subprojects: bloco onde são aplicadas as configurações para todos os subprojetos
da aplicação;
● Os módulos da aplicação devem ter um arquivo “build.gradle” próprio, onde serão
implementadas as configurações exclusivas daquele módulo.
Exemplo
Gradle

Gradle

  • 1.
  • 2.
    Configurations ● annotationProcessor: constróias anotações para serem usadas em tempo de compilação. Exemplo: lombok; ● compileOnly: dependências que são executadas somente em tempo de compilação. Exemplo: lombok. ● runtimeOnly: dependências que são executadas somente em tempo de execução. Exemplo: H2 ● api: indica que as dependências baixadas com essa configuração estão disponíveis para toda a aplicação. ● implementation: indica que a dependência está disponível somente ao projeto em que ela está inserida. ● testImplementation: dependências executadas para compilar testes. Exemplo: JUnit
  • 3.
  • 4.
    Multi-projects É quando umprojeto é dividido em subprojetos, separando suas responsabilidades, tornando eles interdependentes entre si. Benefícios: ● os módulos podem ser atualizados individualmente; ● tornam os testes bem mais eficientes do que em uma aplicação monolítica;
  • 5.
    Gradle multi-projects ● include‘:subproject’ ● dependencies{compile project: ‘:subproject’} ● allprojects: bloco onde são aplicadas configurações para todos os subprojetos e o root project da aplicação; ● subprojects: bloco onde são aplicadas as configurações para todos os subprojetos da aplicação; ● Os módulos da aplicação devem ter um arquivo “build.gradle” próprio, onde serão implementadas as configurações exclusivas daquele módulo.
  • 6.