Afinal de contas, o que é o Gradle e como usá-lo?

Gradle Logo Para entender o que são sistemas de build imagine que você está desenvolvendo um aplicativo para Android e precisa empacotar tudo e distribuir para seus usuários, nesse momento é que entram em ação os sistemas de build, eles são responsáveis por "pegar" automaticamente todos os recursos (sejam eles arquivos java ou xml por exemplo) e utilizar ferramentas especificas (exemplo: compilador de classes java) em um grupo de arquivos empacotando em um único arquivo, no caso do Android um arquivo .apk.

A proposta deste artigo não é aprofundar em todos os conceitos e vantagens do Gradle, e sim dar uma visão rápida para os desenvolvedores que ainda não tiveram contato e querem conhecer essa poderosa ferramenta. Para aprofundar sugiro a leitura dos livros Building and Testing with Gradle e Gradle Beyond the Basics, além da documentação oficial.

Mas então, o que é o Gradle ?

O Gradle é um sistema avançado de automatização de builds que une o melhor da flexibilidade do Ant com o gerenciamento de dependencias e as convenções do Maven. Os arquivos de build do Gradle são scripts escritos na linguagem Groovy, ao contrário dos formatos de construção do Ant e Maven que usam arquivos XML para a configuração. Por serem baseados em scripts, os arquivos do Gradle permitem que você realize tarefas de programação em seu arquivo de configuração. O Gradle ainda conta com um sistema de plugins que adicionam funcionalidades extras ao seu core.

O Android Studio e o Hibernate já estão utilizando o Gradle por padrão. :)

Conceitos básicos do Gradle

Tudo no Gradle se resumo a dois conceitos básicos:

Projects: Toda build do gradle é feita de um ou mais projects, a representação de project dependerá de como você irá utilizar o Gradle. Por exemplo, podemos ter um project que representa um JAR ou até mesmo uma aplicação web. Um project não necessariamente representa coisas que serão construídas, ele também pode representar coisas que serão feitas, como o deploy de sua aplicação para ambientes de homologação ou produção.

Tasks: Cada project é feito de uma ou mais tasks, uma task representa um pedaço de trabalho que uma build vai executar. Podemos ter por exemplo tasks que fazem a compilação de classes, criação de JARs e até mesmo a publicação de arquivos para um repositório especifico.

Pré-Requisitos para rodar o Gradle

Instalando no Windows

  • Baixe a última versão no site oficial do Gradle;
  • O arquivo estará compactado, basta extrair no local onde deseja manter;
  • Adicione a variável de ambiente GRADLE_HOME apontando para o local onde você extraiu o arquivo;
  • Adicione $GRADLE_HOME/bin ao final da variável de ambiente PATH.
  • Abra o CMD e digite gradle -v e verifique se aparece alguma mensagem diferente de: "'gradle' não é reconhecido como um comando interno ou externo..."

Instalando no Linux (Ubuntu)

Utilize os comandos abaixo em seu terminal para instalar o gradle:

$ sudo add-apt-repository ppa:cwchien/gradle $ sudo apt-get update $ sudo apt-get install gradle

Após o termino da instalação digite o seguinte comando:

gradle -v

Uma mensagem parecida com a seguinte deverá ser exibida:

Gradle no Ubuntu

Instalando o Plugin do Gradle no Eclipse

  • Abra o Eclipse;
  • Vá em Help > Eclipse Marketplace;
  • Procure por Gradle (Selecione a instalação especifica para a versão do seu Eclipse).

Utilizando o Gradle no Android Studio

Como mencionado anteriormente, o Android Studio já utiliza como padrão o Gradle, vamos criar uma aplicação básica Android para testar seu funcionamento.

1 - Abra o Android Studio;

2 - Clique em File > New Project e coloque as informações básicas de seu projeto;

New Android Project

3 - Escolha a versão da API que deseja compatibilidade e depois clique em [Next];

Target Android Devices

4 - Selecione "Blank Activity" e clique em [Next];

Activity

5 - Informe um nome para a Activity principal (pode deixar como está por padrão) e clique em [Finish];

Activity Name

6 - Aguarde alguns segundos/minutos até que seu projeto seja criado;

Creating Project

Após a criação do projeto a seguinte tela será apresentada:

Initial Screen

Note que no canto esquerdo logo após os pacotes existe algo chamado Gradle Scripts, é ali que todos seus scripts do Gradle deverão ficar.

7 - Clique em build.gradle (Module: app) e algumas configurações inicias do projeto serão exibidas:

Gradle Script

Agora você já pode começar a adicionar plugins/dependências entre outras possibilidades de uso do Gradle. :)

Sugiro que você passe algum tempo lendo a parte de scripts da documentação oficial do Gradle, nela você vai aprender mais sobre a utilização de tasks, dependências e plugins.

Realizando Build do Projeto pelo Android Studio

Para realizar uma build do projeto vá em Build > Make Project (ou tecle Ctrl + F9), após a conclusão do build uma mensagem parecida com a seguinte será exibida no Gradle Console:

Gradle Console

Conclusão

Como mencionado no inicio do artigo, meu intuito não foi levar uma visão geral do Gradle e sim apresentar essa poderosa ferramenta para quem ainda não teve a oportunidade de estudar e testar. Podemos observar que o Gradle realmente uniu o melhor dos dois mundos (Ant e Maven) em um único lugar e está se tornando uma das ferramentas de build cada dia mais adotadas e uma das preferidas pelos desenvolvedores.