Loading AI tools
Da Wikipédia, a enciclopédia livre
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.
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 ) |
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 |
Repositório | github |
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.
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']
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
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.