Si vous utilisez jlink, vous pouvez créer un JRE dédié à l'application, ce qui est pratique pour la distribution. J'ai donc essayé de savoir comment l'utiliser avec gradle.
Pour le moment, normalement
gradle init --type=java-application
Fait avec.
La condition minimale est d'ajouter la ligne suivante à l'élément plugins.
id 'org.beryx.jlink' version '2.22.0'
Vous pouvez maintenant utiliser gradle jlink.
De plus, si vous supprimez les dépendances incluses par défaut, l'avertissement disparaît. (Il semble que le nom du module se terminant par un nombre ne soit pas autorisé)
De plus, selon la version de JDK
The module name specified in 'application.mainModule' (null) has not the expected value
Est affiché. Ceci est dans l'élément d'application
mainModule = 'nom du module'
Il disparaît si vous écrivez. (Le nom du module est spécifié dans module-info.java)
Il est également possible de créer un élément jlink et de définir une option. Par exemple, vous pouvez écrire comme suit.
jlink {
options = ['--compress', '2', '--no-header-files', '--no-man-pages']
}
Vous pouvez également créer des applications pour plusieurs plates-formes avec targetPlatform. Dans ce cas, préparez un JDK pour chaque plate-forme.
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']
}
gradle build
Vous pouvez maintenant créer un pot sans utiliser jlink. Lors du jlinking, procédez comme suit.
gradle jlink
Maintenant, vous avez une image sous le répertoire de construction, et le répertoire en dessous est votre application. Si targetPlatform est spécifié, un répertoire de \ <nom de projet > - \ <nom de plate-forme cible > sera créé et placé en dessous.
Pour exécuter l'application, il existe un script d'exécution pour \ <nom du projet > dans le répertoire bin afin que vous puissiez l'exécuter. (Fichier Bat pour Windows)
Vous pouvez distribuer l'application en distribuant ensemble les répertoires bin, conf, legal et lib. Vous pouvez le démarrer en le copiant tel quel et en exécutant le fichier exécutable bin.
Recommended Posts