# maven-jfx-plugin **Repository Path**: robot-king/maven-jfx-plugin ## Basic Information - **Project Name**: maven-jfx-plugin - **Description**: javafx-非模块化,模块化打包 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-04-28 - **Last Updated**: 2025-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

maven-jfx-plugin

javafx 打包插件,支持非模块化与非模块化打包!

star fork

> 一般情况下,第三方jar并不提供模块下信息,导致使用官方打包插件会带来诸多问题,特编写次此插件,来解决非模块化打包的问题,由于没有使用模块化,打包体积会较大 ## 插件介绍 此项目为javafx-非模块打包插件,模块化打包需结合使用官方插件`javafx-maven-plugin`,官方插件的方式自行搜索 # 使用说明 > jpackage是jdk14提供的用于打包自包含Java应用程序的工具。使用方法基本是对 [官方说明文档](https://docs.oracle.com/en/java/javase/21/docs/specs/man/jpackage.html)的翻译,部分属性未包含 [用例](https://gitee.com/podigua/jfx-package-example) ## 引入依赖 ```xml io.gitee.podigua maven-jfx-plugin 0.0.4 com.podigua.example.Launch ``` ## 打包 执行 mvn jfx:package ## 参数说明 ### 通用选项 imagePath: image 路径 > 模块化打包时使用此参数 type: 类型 >要创建的包的类型 >有效值为: {"app-image", "exe", "msi", "rpm", "deb", "pkg", "dmg"} >如果未指定此选项,将创建特定于平台的默认类型。 appVersion: 版本 > 应用程序和/或包的版本(一般使用三段式版本比如1.0.2),默认值: **${project.version}** copyright: 版权 > 应用程序的版权 description: 描述 > 应用程序的描述 icon: 图标路径 > 应用程序包的图标路径(绝对路径或相对于${project.basedir}) name: 名称 > 应用程序和/或包的名称,默认值: **${project.name}** vendor: 供应商 > 应用程序的供应商 verbose: > 启用详细输出 默认值: false mainClass: 类名 > 要执行的应用程序主类的限定名称 options: vm java-options(数组) > 传递给Java运行时的选项,例如 ```xml -Xms100m -Xmx500m ``` arguments: 参数数组 > 传递给启动器的主类的命令行参数,例如 ```xml Lucy 18 girl ``` ### Windows winConsole > 为应用程序创建控制台启动器,应指定需要控制台交互的应用程序,默认值: **false** winDirChooser > 添加对话框,以便用户选择安装产品的目录。默认值: **false** winHelpUrl: url > 用户可以获取更多信息或技术支持的URL winMenu > 请求为此应用程序添加开始菜单快捷方式默认值: **false** winMenuGroup: menu-group-name > 将此应用程序放置在的开始菜单组 winPerUserInstall > 将此应用程序放置在的开始菜单组。默认值: **false** winShortcut > 请求为此应用程序创建桌面快捷方式。默认值: **false** winShortcutPrompt > 添加对话框,以便用户选择是否由安装程序创建快捷方式。默认值: **false** winUpdateUrl > 可用应用程序更新信息的URL winUpgradeUuid: id > 与此软件包升级相关联的UUID ### Mac macPackageIdentifier: 标识符 > 唯一标识macOS应用程序的标识符,默认为主类名。只能使用字母数字(A-Z,a-z,0-9),连字符(-)和句点(.)字符。 macPackageName: 名称 > 在菜单栏中显示的应用程序名称,这可以与应用程序名称不同。此名称必须少于16个字符,并适合在菜单栏和应用程序信息窗口中显示。默认为应用程序名称 macPackageSigningPrefix: 前缀 > 在签署应用程序包时,此值将添加到所有需要签名但没有现有包标识符的组件之前。 macSign > 请求对包或预定义应用程序映像进行签名。 macSigningKeychain: 钥匙链名称 > 用于搜索签名标识的钥匙链的名称,如果未指定,将使用标准钥匙链。 macSigningKeyUserName: 名称 > Apple签名标识中的团队或用户名部分 macAppStore > 指示 jpackage 输出适用于Mac App Store。默认值: **false** macEntitlements: 路径 > 包含在签署包中的可执行文件和库时使用的授权的文件路径 macAppCategory: 类别 > 用于构造应用程序plist中的LSApplicationCategoryType的字符串,默认值为"utilities"。 ### Linux linuxPackageName: > Linux软件包的名称,默认为应用程序名称 linuxDebMaintainer: 邮件地址 > .deb包的维护者 linuxMenuGroup: 菜单组名称 > 将此应用程序放置在的菜单组 linuxShortcut > 为应用程序创建快捷方式,默认值: **false** ### 用于创建应用程序包的选项 aboutUrl: url > 应用程序主页的URL installDir: 路径 > 应用程序安装目录的绝对路径(在macOS或Linux上),或安装目录的相对子路径,如“Program Files”或“AppData”(在Windows上) resourceDir:资源路径 > 用于覆盖jpackage资源的路径,根据平台不通,读取:${project.basedir/javafx},下的**mac**,**windows**,**linux**文件夹,不需要配置,文件夹存在即可 ### 资源目录 通过向此目录添加替换资源,可以覆盖jpackage的图标、模板文件和其他资源。jpackage将在资源目录中按特定名称查找文件。**读取:${project.basedir/javafx},下的**mac**,**windows**,**linux**文件夹** #### 仅在Linux上运行时考虑的资源目录文件: {launcher-name}.png > 应用程序启动器图标,默认资源为JavaApp.png {launcher-name}.desktop > 与xdg-desktop-menu命令一起使用的桌面文件,用于已注册文件关联的应用程序启动器和/或具有图标的应用程序启动器 ,默认资源为template.desktop #### 仅在构建Linux DEB/RPM安装程序时考虑的资源目录文件: {package-name}-{launcher-name}.service > 注册为后台服务类型应用程序的应用程序启动器的systemd单元文件,默认资源为unit-template.service > #### 仅在构建Linux RPM安装程序时考虑的资源目录文件: {package-name}.spec > RPM规范文件,默认资源为template.spec #### 仅在构建Linux DEB安装程序时考虑的资源目录文件: control > 控制文件,默认资源为template.control copyright > 版权文件,默认资源为template.copyright preinstall > 预安装shell脚本,默认资源为template.preinstall prerm > 预删除shell脚本,默认资源为template.prerm postinstall > 后安装shell脚本,默认资源为template.postinstall postrm > 后删除shell脚本,默认资源为template.postrm #### 仅在Windows上运行时考虑的资源目录文件: {launcher-name}.ico > 应用程序启动器图标,默认资源为JavaApp.ico {launcher-name}.properties > 应用程序启动器可执行文件的属性文件,默认资源为WinLauncher.template #### 仅在构建Windows MSI/EXE安装程序时考虑的资源目录文件: -post-image.wsf > 用于构建应用程序镜像后运行的Windows脚本文件(WSF) main.wxs > 主WiX项目文件,默认资源为main.wxs overrides.wxi > 覆盖WiX项目文件,默认资源为overrides.wxi service-installer.exe > 服务安装程序可执行文件,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑 {launcher-name}-service-install.wxi > 服务安装程序WiX项目文件,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑,默认资源为service-install.wxi {launcher-name}-service-config.wxi > 服务安装程序WiX项目文件,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑,默认资源为service-config.wxi InstallDirNotEmptyDlg.wxs > 用于安装程序UI对话框检查安装目录不存在或为空的WiX项目文件,默认资源为InstallDirNotEmptyDlg.wxs ShortcutPromptDlg.wxs > 用于安装程序UI对话框配置快捷方式的WiX项目文件,默认资源为ShortcutPromptDlg.wxs bundle.wxf > 应用程序镜像组件层次结构的WiX项目文件 ui.wxf > 用于安装程序UI的WiX项目文件,仅在构建Windows EXE安装程序时考虑的资源目录文件:WinInstaller.properties,安装程序可执行文件的属性文件,默认资源为WinInstaller.template {package-name}-post-msi.wsf > 用于构建EXE安装程序的嵌入式MSI安装程序后运行的Windows脚本文件(WSF) #### 仅在macOS上运行时考虑的资源目录文件 {launcher-name}.icns > 应用程序启动器图标,默认资源为JavaApp.icns Info.plist > 应用程序属性列表文件,默认资源为Info-lite.plist.template Runtime-Info.plist > Java运行时属性列表文件,默认资源为Runtime-Info.plist.template .entitlements > 签名授权属性列表文件,默认资源为sandbox.plist ### 仅在构建macOS PKG/DMG安装程序时考虑的资源目录文件: {package-name}-post-image.sh > 用于构建应用程序镜像后运行的Shell脚本 #### 仅在构建macOS PKG安装程序时考虑的资源目录文件: uninstaller > 卸载程序Shell脚本,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑,默认资源为uninstall.command.template preinstall > 预安装Shell脚本,默认资源为preinstall.template postinstall > 后安装Shell脚本,默认资源为postinstall.template services-preinstall > 服务包的预安装Shell脚本,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑,默认资源为services-preinstall.template services-postinstall > 服务包的后安装Shell脚本,如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑,默认资源为services-postinstall.template {package-name}-background.png > 背景图片,默认资源为background_pkg.png {package-name}-background-darkAqua.png > 深色背景图片,默认资源为background_pkg.png product-def.plist > 包属性列表文件,默认资源为product-def.plist {package-name}-{launcher-name}.plist > 用于将应用程序启动器注册为后台服务类型应用程序的launchd属性列表文件,默认资源为launchd.plist.template #### 仅在构建macOS DMG安装程序时考虑的资源目录文件: {package-name}-dmg-setup.scpt > 设置AppleScript脚本,默认资源为DMGsetup.scpt {package-name}-license.plist > 许可属性列表文件,默认资源为lic_template.plist {package-name}-background.tiff > 背景图片,默认资源为background_dmg.tiff {package-name}-volume.icns > 卷图标,默认资源为JavaApp.icns # 贡献与支持 只在mac上进行了测试 您可以通过下面的方法来贡献和支持该项目: 1. 在 Gitee 上为项目加注星标 2. 给予反馈 3. 提交PR 4. 贡献您的想法建议 # 打赏列表