Maven ist out, Gradle ist in - so habe ich kürzlich erfahren. Zeit für einen Blick darauf.
Zuerst muss es installiert werden. Auf dem Mac benutze ich sdkman:
curl -s "https://get.sdkman.io" | bash
source "/Users/twiss1/.sdkman/bin/sdkman-init.sh"
Siehe auch die offizielle Dokumentation.
sdk list gradle
sdk install gradle 3.4.1
gradle -v
Beginnen wir mit einem einfachen Java “Hello World!”, das von Gradle kompiliert und ausgeführt wird.
package com.rampmeupscotty.blog;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Gradle");
}
}
Ich habe diese Datei in myproject/src/main/java/com/rampmeupscotty/blog abgelegt.
Dann erstelle ich eine Datei namens build.gradle in myproject/app mit folgendem Inhalt:
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.rampmeupscotty.blog.Hello"
Im myproject-Verzeichnis kann ich überprüfen, welche Tasks verfügbar sind mit:
gradle tasks -all
Die relevanten sind build und run. Das Ausführen von gradle -q run sollte Folgendes produzieren:
Hello Gradle
Es macht nur halb so viel Spaß ohne Docker. Erweitern wir build.gradle ein wenig:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.bmuschko:gradle-docker-plugin:3.0.6'
}
}
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'com.bmuschko.docker-java-application'
mainClassName = 'com.rampmeupscotty.blog.Hello'
docker {
javaApplication {
maintainer = 'The Dude "thedude@email.com"'
tag = 'thedude/gradle-docker:latest'
}
}
Baue das Image mit gradle dockerBuildImage. Danach führe es aus mit:
docker run -ti thedude/gradle-docker
Zufrieden mit dem Ergebnis? Pushe das Image in die Registry mit gradle dockerPushImage. Ohne Parameter wird die offizielle Docker-Registry verwendet.
Das war’s für heute!