[JAVA] Verwenden Sie jlink mit gradle

Einführung

Wenn Sie jlink verwenden, können Sie eine JRE für die Anwendung erstellen, die für die Verteilung geeignet ist. Also habe ich versucht herauszufinden, wie man es mit Gradle benutzt.

Projektvorbereitung

Vorerst normalerweise

gradle init --type=java-application

Machen mit.

Schreiben Sie build.gradle neu

Die Mindestanforderung besteht darin, dem Plugins-Element die folgende Zeile hinzuzufügen.

id 'org.beryx.jlink' version '2.22.0'

Jetzt können Sie gradle jlink verwenden.

Wenn Sie die standardmäßig enthaltenen Abhängigkeiten löschen, wird die Warnung nicht mehr angezeigt. (Es scheint, dass der Modulname, der mit einer Nummer endet, nicht zulässig ist.)

Darüber hinaus abhängig von der Version von JDK

The module name specified in 'application.mainModule' (null) has not the expected value

Wird angezeigt. Dies ist im Anwendungselement

mainModule = 'Modulname'

Es verschwindet, wenn Sie schreiben. (Der Modulname ist der in module-info.java angegebene.)

Es ist auch möglich, ein jlink-Element zu erstellen und eine Option festzulegen. Sie können beispielsweise wie folgt schreiben.

jlink {
    options = ['--compress', '2', '--no-header-files', '--no-man-pages']
}

Mit targetPlatform können Sie auch Apps für mehrere Plattformen erstellen. Bereiten Sie in diesem Fall ein JDK für jede Plattform vor.

jlink {
    targetPlatform("mac") {
        jdkHome = "/usr/java/jdk-mac/Contents/Home"
    }
    targetPlatform("linux-x64") {
        jdkHome = "/usr/java/jdk"
    }
    targetPlatform("windows-x64") {
        jdkHome = "/usr/java/jdk-win"
    }
    options = ['--compress', '2', '--no-header-files', '--no-man-pages']
}

Bauen

gradle build

Jetzt können Sie ein Glas erstellen, ohne jlink zu verwenden. Gehen Sie beim Verknüpfen wie folgt vor.

gradle jlink

Jetzt haben Sie ein Image unter dem Build-Verzeichnis und das Verzeichnis darunter ist Ihre App. Wenn targetPlatform angegeben ist, wird ein Verzeichnis mit \ <Projektname > - \ <Name der Zielplattform > erstellt und darunter abgelegt.

Um die App auszuführen, befindet sich im bin-Verzeichnis ein Ausführungsskript für \ <Projektname >, damit Sie es ausführen können. (Bat-Datei für Windows)

Sie können die Anwendung verteilen, indem Sie die Verzeichnisse bin, conf, legal und lib zusammen verteilen. Sie können es starten, indem Sie es so kopieren, wie es ist, und die ausführbare Datei bin ausführen.

Recommended Posts

Verwenden Sie jlink mit gradle
Verwenden Sie ProGuard mit Gradle
Verwenden Sie WebJars mit Gradle
Verwenden Sie log4j2 mit YAML + Gradle
Integrationstest mit Gradle
Verwenden Sie Puphpeteer mit Docker
Installieren Sie Gradle auf ubuntu16.04
Datenkern beginnend mit Gradle
Wie benutzt man Gradle?
Beginnen Sie mit Gradle
Verwenden Sie Lambda-Ebenen mit Java
Erstellen Sie mit Gradle ein Java-Multiprojekt
Verwenden Sie GDAL mit Python mit Docker
Gradle + Kotlin-Glas mit DSL generieren
Verwenden Sie das pfx-Zertifikat mit Okhttp3
Lombok arbeitet nicht mit Gradle5
Verwenden Sie mit Rails 6.0 mehrere Datenbanken
Verwenden Sie Spring JDBC mit Spring Boot
Verwenden Sie Ruby mit Google Colab
Verwenden Sie SpatiaLite mit Java / JDBC
Hallo Welt mit SpringBoot / Gradle
[Docker] Wird immer mit Docker + Rails verwendet
Verwenden Sie PlantUML mit Visual Studio Code
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Erstellen eines Java-Projekts mit Gradle
Verwenden Sie Java mit MSYS und Cygwin
Verwenden Sie den Konstruktor mit Argumenten in cucumber-picocontainer
Gradle
Verwenden Sie den PostgreSQL-Inet-Typ mit DbUnit
Ich habe versucht, JOOQ mit Gradle zu verwenden
Verwenden Sie Bootstrap 4 mit PlayFramework 2.6 (kein CDN)
Ausgabe Testabdeckung mit Klee + Gradle
Ich kann Lombok nicht mit Gradle installieren.
Verwenden von Git mit SourceTree und Eclipse
Verwenden Sie JDBC mit Java und Scala.
Verwenden Sie Java 11 mit Google Cloud-Funktionen
Wie man mssql-tools mit alpine benutzt
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Verwenden von cuda11.0 mit pytorch mit Docker
Entwickeln Sie die Verarbeitung mit IntelliJ + Kotlin + Gradle
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Verwenden Sie die Firebase-Echtzeitdatenbank mit Cocos Creator.
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Verwenden Sie Symbolic Link für den mehrstufigen Build von Docker
Verwenden Sie FacesContext als Mock mit PowerMockito
[JaCoCo (Java Code Coverage)] Verwendung mit NetBeans
Verwenden Sie cljstyle mit Spacemacs unter Ubuntu unter WSL2
Verwenden Sie Spring Security JSP-Tags mit FreeMarker
Konfigurieren Sie ein Multiprojekt mit Unterverzeichnissen in Gradle
Der JUnit 5-Gradle-Test führt zu einem Fehler mit der Lombok-Annotation
Verwenden Sie das benannte Format mit Rubys Formatmethode
Einführung eines automatisierten Java-Tests mit JUnit 5 + Gradle
Laden Sie JDK mit Gradle herunter und erstellen Sie JRE
Fügen Sie der von gradle erstellten Distribution ein Skript hinzu
(IntelliJ + gradle) Hallo Welt mit Spring Boot