Gradle

Origem: Wikipédia, a enciclopédia livre.
Gradle
Logótipo
Gradle
Desenvolvedor Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling
Lançamento 2007 (16–17 anos)
Versão estável 8.6[1] (2 de fevereiro de 2024; há 2 meses)
Escrito em Java, Groovy
Sistema operacional Multiplataforma
Gênero(s) Automação de compilação
Licença Apache License 2.0
Estado do desenvolvimento Ativo
Página oficial www.gradle.org
Repositório github.com/gradle/gradle

Gradle é um sistema de automação de compilação de código aberto que se baseia nos conceitos de Apache Ant e Apache Maven e introduz uma linguagem de domínio específico (DSL) baseada em Groovy em vez do XML usado pelo Apache Maven para declarar a configuração do projeto.[2] Gradle usa um grafo acíclico dirigido ("DAG") para determinar a ordem em que as tarefas possam ser executadas.

Gradle foi projetado para multi-projetos que podem ter alto crescimento, e suporta compilações incrementais quando inteligentemente determina quais partes da árvore estão atualizadas, de modo que qualquer tarefa dependente dessas partes não precisa ser reexecutada.

Os plugins iniciais são focados principalmente em torno do desenvolvimento e implantação de Java,[3] Groovy e Scala, porém mais linguagens e fluxos de projeto são pretendidos.

Exemplo de projeto Java[editar | editar código-fonte]

Considere o caso em que a estrutura de diretório de Maven é usado para códigos fonte e recursos Java. Esses diretórios são: src/main/java, src/main/resources, src/test/java e src/test/resources.

build.gradle

apply plugin: 'java'

Executando o gradle build resultará em

> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build

BUILD SUCCESSFUL

O plugin Java emula muitos dos esperados ciclos de vida de Maven como tarefas no grafo acíclico direcionado de dependências para as entradas e saídas de cada tarefa. Para este caso simples, a tarefa de compilação depende de resultados das tarefas de checagem e montagem. Da mesma forma, a checagem depende do teste, e a montagem depende do jar.

Para projetos que não seguem as convenções do Maven, Gradle permite que a estrutura de diretório seja configurada. O exemplo a seguir daria suporte a um projeto que contém os ficheiros de origem em src/java em vez do src/main/java, imposto por convenção pelo Maven.

build.gradle

apply plugin: 'java'
sourceSets.main.java.srcDirs = ['src/java']

Exemplo de migração Ant[editar | editar código-fonte]

Gradle tem uma forte integração com o Ant, e ainda trata o Ant como scripts que pode ser diretamente importados, durante a construção (building). O exemplo abaixo mostra um simplista alvo de Ant a ser incorporado como uma tarefa de Gradle.

build.xml

<project>
  <target name="ant.target">
    <echo message="Running ant.target!"/>
</target>
</project>

build.gradle

ant.importBuild 'build.xml'

Executando o gradle ant.target irá resultar em

> gradle ant.target
:ant.target
[ant:echo] Running ant.target!

BUILD SUCCESSFUL

Referências

  1. «Gradle l Releases». Gradle.org. 25 de novembro de 2022. Consultado em 10 de fevereiro de 2024 
  2. «"Como Começar Com O Gradle"» 
  3. «"Introdução · a Construção de Projetos em Java com Gradle"» 

Ligações externas[editar | editar código-fonte]