Dica rápida de Gradle

17 June 2015

Entendendo um pouco da ferramenta de automação default usada no Android Studio

O Gradle é utilizado a quase todo momento em um projeto Android. O Android Studio já inicializa os projetos usando essa ferramenta de automação de buils. Atualmente ela é altamente sugerida em projetos Android.

Syntax e linguagem

O arquivo build.gradle contém diversas instruções para compilar um projeto Android. É lá que colocamos as dependencias do projeto, como bibliotecas de terceiros.

A linguagem utilizada pelo Gradle é o Groovy. Groovy é uma linguagem muito baseada em closures, que basicamente são blocos de código com parâmetros e retornos que são associados normalmente a alguma variável. É algo semelhante a interface Future por exemplo.



No exemplo acima a variável myVar recebe um closure. Esse closure por sua vez recebe 2 parametros, uma String e um int. Os tipos poderiam ser omitidos. Em seguida o closure é chamado e temos o output.

Gradle scripts

Você pode rodar manualmente as tarefas do build.gradle pelo terminal ou mesmo criar novas tasks. Por exemplo, no seu build.gradle adicione a tarefa abaixo:



E pelo terminal, acesse a raiz do projeto e execute gradle tasks. Se você nunca rodou o gradle por fora do Android Studio você precisará adicioná-lo antes ao seu classpath. O download do Gradle pode ser feito no própio site.

Ao rodar o comando gradle tasks você verá apenas o print "Configuration stage". Isso porque todas as tasks do Gradle serão configuradas, mesmo que não executadas. Essa é a etapa chamada Configuration stage. Para rodar efetivamente sua task, execute gradle myTask. Agora o build irá rodar a sua task, dando o print em "Execution stage".

build.gradle

Agora podemos olhar o build.gradle e entender um pouco mais do que acontece ali.



Repare que temos uma chamada a um script chamado Buildscript que recebe um closure. Assim como temos um script chamado allprojects, que tabém recebe closures com seus parâmetros.

Essas chamadas pré-definidas vem da interface Project do Gradle. É através dela que temos acesso as features do Gradle.

Continuando...

Dois links interessantes para continuar seus estudos com Gradle:

Gradle Tips #1 - Séria de posts recentes.

Gradle for Android e Java - Curso da Udacity sobre Gradle

comments powered by Disqus