Gluon 构建为单个 Jar

Gluon build as single Jar

我想将我的 Gluon 项目构建为单个可执行 jar 文件。

目前有一个包含在bin文件夹中的启动脚本等等。

是否可以构建单个 jar?或者我可以包括一个自己的 gradle 任务来完成这个吗?

installAppdistZip 等当前任务不会将 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。

注意:如果您使用 desktopCompiledesktopRuntime 依赖项,则不会包含这些依赖项,因此您需要将它们更改为 compileruntime

因为我必须用 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")
}