Semelhante ao Maven, instale o Gradle seguindo essas instruções, opcionalmente utilize a mesma pasta do exemplo anterior e crie o arquivo para o build do gradle: build.gradle :
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.9.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'eclipse'
apply plugin: 'idea'
jar {
baseName = 'gs-spring-boot'
version = '0.1.0'
}
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("junit:junit")
}
task wrapper(type: Wrapper) {
gradleVersion = '1.11'
}
O Gradle é mais flexível e mais simples, além de usar justamente o grande acervo de bibliotecas disponibilizadas nos repositórios Maven.
O techo
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.9.RELEASE")
}
}
orienta o Gradle a encontrar e disponibilizar o plugin spring-boot-gradle-plugin
As linhas:
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'eclipse'
apply plugin: 'idea'
disponibilizam tasks especializadas para projetos java, artefatos spring-boot e integração com a IDE Eclipse e Idea, respectivamente.
No terminal digite:
gradle bootRun
e mais uma vez e resultado será idêntico ao mostrado no post anterior.
No próximo post veremos a utilização de mais uma opção: o Spring Boot CLI, uma ferramenta em linha de comando que permite gerar aplicações Spring Boot ainda mais rápido.
No post anterior fiz uma breve introdução ao Spring Boot. Hoje e no próximo post irei demonstrar como executar o mesmo exemplo do post anterior utilizando duas populares ferramentas para automação de compilações: o Maven e o Gradle.
Trabalhando com o Maven
A instalação do Maven é bem simples e você pode utilizar esse guia oficial em caso de dúvidas.
Crie um novo projeto Maven utilizando sua IDE preferida ou no terminal digite:
mvn archetype:generate -DgroupId=hello -DartifactId=hello -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
O resultado será uma estrutura de pasta semelhante a essa:
hello
├── pom.xml
└── src
├── main
│ └── java
│ └── hello
│ └── SampleController.java
└── test
└── java
└── hello
└── AppTest.java
Renomeie a classe App para SampleController e deixe-a com esse conteúdo:
package hello;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
No terminal digite:
mvn compile exec:java
O resultado será idêntico ao mostrado no post anterior.
No próximo post demonstrarei a utilização do Spring Boot com o Gradle.
No post anterior falamos do Gradle, uma ferramenta que dentre outras coisas é muito boa para builds.
Uma outra característica importante dela é a integração com o Eclipse além de outras importantes ferramentas de desenvolvimento.
Nesse post focaremos no Gradle Support, um plugin desenvolvido pela equipe do Springsource para complementar o STS. A instalação, como sempre, é muito simples: Caso você esteja utilizando o STS basta ir ao Dashboard e na aba “extensions” localizar e instalar o plugin “Gradle Support”.
Caso não esteja utilizando o STS, basta no menu “Install New Software” utilizar o endereço:
http://dist.springsource.com/release/TOOLS/gradle
Uma sugestão adicional é instalar o plugin para o Groovy-Eclipse pois trará recursos adicionais à edição do build.gradle.
Após instalado, crie um novo projeto utilizando a tecla Command + N (ou Ctrl +N) e escolha Gradle/Gradle Project

Outra opção é importar um projeto pré-existente: file/import/Gradle/Gradle Project

Observe que após escolher a pasta que contém o build file, é necessário ainda clicar em “Build Model” e selecionar o “Project”
Por fim, utilize o Gradle Tasks View para acessar as tasks facilmente.
Já ha algum tempo que uso o Maven como ferramenta de build, mas preciso confessar que sempre tive meus contra-tempos com ele. No último projeto resolvi experimentar novamente o Ant integrado ao Ivy e o resultado foi que acabei com os problemas de dependencias mas ainda permaneceu o inconveniente de trabalhar com um xml e ter que definir todos por menores.
Resolvi então experimentar o Gradle, uma ferramenta de build baseada em Groovy que traz inúmeras vantagens em relação às anteriores citadas.
É possível personalizar toda a estrutura do projeto e também se beneficiar de tasks e comportamentos padronizados.
O fato de ser em groovy permite que seus scripts sejam escritos com muita flexibilidade lançando mão dos recursos de um build associados uma poderosa linguagem.
Instalando
Baixe e descompacte a ultima versão do Gradle em um diretório e em seguida crie em seu ambiente a variável GRADLE_HOME e aponte para a essa pasta. Modifique a variável PATH adicionando $GRADLE_HOME/bin à ela.
Após isso você poderá digitar gradle -version para se certificar que tudo está ok.
Um script
Crie uma nova pasta e dentro dela seu script com o nome de build.gradle
task tarefa1 << {
println "essa é a tarefa 1"
}
Salve-o e execute ainda nessa pasta: gradle tarefa1
O resultado será parecido com
gradle tarefa1
:tarefa1
essa é a tarefa 1
BUILD SUCCESSFUL
Total time: 2.741 secs
Ao digitar gradle tasks você verá a task “tarefa1” além de outras.
Podemos também definir a task padrão assim:
defaultTasks "tarefa1"
task tarefa1 << {
println "essa é a tarefa 1"
}
Agora já é possível executar o script apenas com gradle
Algo prático
Você poderá utilizar o Gradle para automatizar várias tarefas, mas compilar e integrar códigos serão as mais rotineiras. Vamos criar uma pasta src/main/java e nela salve o arquivo Project1.java
public class Project1{
public static void main(String[] args){
System.out.println("Wello World!");
}
}
Altere seu script para:
apply plugin:'java'
apply plugin:'application'
mainClassName = "Project1"
Por fim execute o script gradle run para que sua classe seja executada.