Conhecendo Gradle — Contexto

Rodrigo Mendes
3 min readAug 8, 2018

--

Durante anos, construir software tinha os requisitos simples de compilar e empacotar. Mas as necessidades de desenvolvimento para softwares modernos mudaram e, por isso, temos uma grande necessidade de automação de tarefas repetitivas além da compilação. Hoje, os projetos envolvem uma diversidade de tecnologias, incorporam múltiplas linguagens de programação e se faz necessário aplicar um amplo espectro de estratégias de testes. Com o surgimento de práticas ágeis, a construção deve conter integração continua de código, bem como a entrega frequente e fácil em diversos ambientes como de teste e produção, por exemplo.

Fluxo de desenvolvimento de software

As ferramentas de build estabelecidas regularmente não alcançam nossas expectativas no cumprimento desses objetivos. Quantas vezes os seus olhos não ficaram cansados enquanto olha para XML para descobrir como uma compilação funciona? E por que não pode ser mais fácil adicionar lógica personalizada para a sua construção? Muitas vezes, ao adicionar ou alterar funcionalidades a um script de build, você não treme com sensação de que você está implementando uma solução alternativa ou hack. Muitos sentem essa dor. Tem que haver uma maneira melhor de fazer essas coisas de forma expressiva e sustentável. E tem uma solução para isso é chamado Gradle.

Gradle é o próximo passo evolutivo em ferramentas de compilação baseados em JVM. Inspira-se em lições aprendidas a partir de ferramentas estabelecidas, como ANT e Maven e leva suas melhores ideias para o próximo nível. Seguindo uma abordagem build-by-convention (build por conveniência, tradução livre), o Gradle permite a modelagem declarativa de seu domínio do problema usando uma linguagem poderosa e expressiva de domínio específico (DSL — domain specific language) implementado em Groovy em vez de XML. Porque Gradle é nativo à JVM, permite-lhe escrever lógica personalizada na linguagem que nos sentimos mais confortáveis, seja Java ou Groovy. Isso nos permite trabalhar com Android, C++, Groovy, Java, Javascript, Kotlin e Scala nativamente e com projetos de comunidade: pode se utilizar também para build de linguagens como Golang (gogradle) e Python (linkedin/pygradle).

No mundo Java, existe um número incrivelmente grande de bibliotecas e frameworks que são utilizados. O gerenciamento de dependência é utilizado para baixar automaticamente esses artefatos a partir de um repositório e torná-los disponíveis para a sua aplicação. Tendo aprendido com as falhas de soluções de gerenciamento de dependência existentes, Gradle fornece sua própria implementação. Não só é altamente configurável, ele também se esforça para ser o mais compatível possível com as infraestruturas de gestão de dependência existentes (como o Maven e Ivy). A capacidade de Gradle para gerir as dependências não está limitada a bibliotecas externas. Como seu projeto cresce em tamanho e complexidade, você vai querer organizar o código em módulos com responsabilidades claramente definidas. Gradle fornece suporte poderoso para definir e organizar construção de múltiplos projetos, assim como dependências entre os projetos.

Referênciahttps://liviutudor.com/2016/10/27/gradle-multi-module-projects-centralized-configuration/

Para começar a usar Gradle, tudo que você precisa para trazer para a mesa é uma boa compreensão da linguagem de programação Java ou Groovy.

--

--