JavaFX-Gradle-Plugin

Eigentlich habe ich mit Gradle wenig zu tun, ich komme mit Maven sehr gut zurecht, trotzdem erkenne ich die Stärke von Gradle an wenn man einen absolut personalisierten Build-Prozess benötigt. Doch das populäre Bau-System Gradle greift immer mehr um sich und macht auch vor der JavaFX-Entwicklung nicht halt.

Bisher gab es das Gradle-Plugin javafx-gradle von Danno Ferrin, dies wird jedoch schon seit über einem Jahr nicht mehr weiterentwickelt, wohl wegen der unklaren Policy seitens Oracle.

JavaFX-Maven-Plugin to the rescue

Irgendwann tauchte dann der Bug-Eintrag 177 auf mit dem Titel "Gradle", da das Maven-Plugin sehr lebendig erscheint. Ich habe das JavaFX-Maven-Plugin bisher auf den aktuellsten Stand angehoben, und da ich auch diverse Features und Workarounds dafür entwickelt habe, konnte ich für das JavaFX-Gradle-Plugin auf ausreichend Vorerfahrung zurückgreifen. Obwohl ich bisher noch nie so richtig grün mit Gradle geworden bin, war dies kein einfacher Grund für mich hier einfach die Bitte abzuschlagen.

Über Maven-Central verfügbar

Um das JavaFX-Gradle-Plugin zu verwenden, muss man lediglich zu einem entsprechenden build.gradle-file das Plugin mit seinen Maven-Koordinaten hinzufügen und kann dann die Tasks jfxJar und jfxNative aufrufen, um eine JavaFX-Jar oder ein Native-Bundle zu erstellen.

buildscript {
    dependencies {
        classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '8.4.1'
    }

    repositories {
        mavenCentral()
    }
}

Komplett in Java und ohne Groovy

"Java ist Groovy, Groovy ist Java" mag vielleicht ein toller Marketingspruch sein, aber ich komme mit Groovy nicht sonderlich gut klar, diese DSL sieht für mich an vielen Stellen einfach zu unsauber aus.

Die Zukunft

Ich werde versuchen das Plugin mit dem JavaFX-Maven-Plugin gleich zu halten, alle Features im einen Bereich sollen auch für das andere Buildsystem verfügbar, sofern möglich.

work in progress