Hello Gradle
Maven is out, Gradle is in, so I have learned recently. Time to take a peek …
First, it needs to be installed. On the Mac, I use sdkman
curl -s "https://get.sdkman.io" | bash
source "/Users/twiss1/.sdkman/bin/sdkman-init.sh"
Also see the official docs.
sdk list gradle
sdk install gradle 3.4.1
gradle -v
Let’s start with a simple Java “Hello World!” that will be compiled and run by using Gradle.
package com.rampmeupscotty.blog;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Gradle");
}
}
I have put this file into the directory myproject/src/main/java/com/rampmeupscotty/blog
Then I create a file called build.gradle
in myproject/app
with the following content
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.rampmeupscotty.blog.Hello"
In directory myproject
I can check what tasks I can run with
gradle tasks -all
The relevant ones are build
and run
. With a gradle -q run
you should get the desired result.
"Hello World!"
It is only half the fun without using Docker. Let’s extend the build.gradle
a bit.
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 "[email protected]"'
tag = 'thedude/gradle-docker:latest'
}
}
The image is being built with gradle dockerBuildImage
. After that, run it with docker run -ti thedude/gradle-docker
and see what happens.
Fine with the result? Then push the image to the registry gradle dockerPushImage
. Without any parameters supplied, the official Docker registry will be used.
Done for today!