我想将我的 Gluon 项目构建为单个可执行 jar 文件。
目前有一个包含在 bin 文件夹等中的启动脚本。
是否可以构建一个罐子?或者我可以包含一个完成此任务的自己的 gradle 任务吗?
我想将我的 Gluon 项目构建为单个可执行 jar 文件。
目前有一个包含在 bin 文件夹等中的启动脚本。
是否可以构建一个罐子?或者我可以包含一个完成此任务的自己的 gradle 任务吗?
当前的任务喜欢installApp
或distZip
不会将罐子捆绑在一起。
如果你想创建一个'fat-jar',你可以将这个插件添加到你的 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
ordesktopRuntime
依赖项,则不会包含这些,因此您需要将它们更改为compile
or 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")
}