Gluon 构建为单个 Jar
Gluon build as single Jar
我想将我的 Gluon 项目构建为单个可执行 jar 文件。
目前有一个包含在bin文件夹中的启动脚本等等。
是否可以构建单个 jar?或者我可以包括一个自己的 gradle 任务来完成这个吗?
installApp
或 distZip
等当前任务不会将 jar 捆绑在一起。
如果您想创建一个 'fat-jar',您可以将此 plugin 添加到您的 build.gradle 脚本中:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.8'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
}
apply plugin: 'org.javafxports.jfxmobile'
apply plugin: 'com.github.johnrengelman.shadow'
然后是运行gradlew shadowJar
。它将在 libs 下创建一个可执行的 jar。
注意:如果您使用 desktopCompile
或 desktopRuntime
依赖项,则不会包含这些依赖项,因此您需要将它们更改为 compile
或 runtime
。
因为我必须用 javapackager 构建 jar,所以我使用了这个插件:javafx-gradle-plugin
我对 Gradle 比较陌生,所以添加依赖项只是一个临时解决方案,但它有效
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.8'
classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '8.4.1'
}
}
jfx {
verbose = true
mainClass = "package.path.to.main.class.MainClass"
jfxAppOutputDir = "build/jfx/app" //configurable
jfxMainAppJarName = "ProjectName.jar"
deployDir = "src/main/deploy" //for signing
//many more options, go to link to learn about them
}
jfxJar.doFirst {
//TODO add all desktop dependencies
println("adding desktop dependency")
project.dependencies.add("runtime", "com.gluonhq:charm-desktop:2.1.0")
}
我想将我的 Gluon 项目构建为单个可执行 jar 文件。
目前有一个包含在bin文件夹中的启动脚本等等。
是否可以构建单个 jar?或者我可以包括一个自己的 gradle 任务来完成这个吗?
installApp
或 distZip
等当前任务不会将 jar 捆绑在一起。
如果您想创建一个 'fat-jar',您可以将此 plugin 添加到您的 build.gradle 脚本中:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.8'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
}
apply plugin: 'org.javafxports.jfxmobile'
apply plugin: 'com.github.johnrengelman.shadow'
然后是运行gradlew shadowJar
。它将在 libs 下创建一个可执行的 jar。
注意:如果您使用 desktopCompile
或 desktopRuntime
依赖项,则不会包含这些依赖项,因此您需要将它们更改为 compile
或 runtime
。
因为我必须用 javapackager 构建 jar,所以我使用了这个插件:javafx-gradle-plugin
我对 Gradle 比较陌生,所以添加依赖项只是一个临时解决方案,但它有效
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.8'
classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '8.4.1'
}
}
jfx {
verbose = true
mainClass = "package.path.to.main.class.MainClass"
jfxAppOutputDir = "build/jfx/app" //configurable
jfxMainAppJarName = "ProjectName.jar"
deployDir = "src/main/deploy" //for signing
//many more options, go to link to learn about them
}
jfxJar.doFirst {
//TODO add all desktop dependencies
println("adding desktop dependency")
project.dependencies.add("runtime", "com.gluonhq:charm-desktop:2.1.0")
}