当前位置: 首页 > news >正文

java的maven打包插件来了,package一键打包exe、dmg、rpm等

最近在写桌面客户端,由于发现打包始终没那么便捷,于是就写了此插件,只需要简单配置,就能打包exe,具体功能参考jdk的jpackage,需要jdk14以上,还有一些参数是要求jdk>17的,也就是18开始才有的,不过使用17打包基本没啥问题,此打包插件除了打包gui外,还可以打包springboot等项目

EasyPackage

java swing javafx gui可以一键打包app-image、exe、msi、rpm、deb、pkg、dmg

Feature

  • 最小打包
  • 支持模块化和非模块化
  • 支持Springboot项目

Add plugins in Maven

<plugin><groupId>io.github.janix520</groupId><artifactId>maven-easypackage-plugin</artifactId><version>1.2.0</version><executions><execution><phase>package</phase><goals><goal>jpackage</goal></goals></execution></executions><configuration><!-- 是否是最小打包,用于精简虚拟机,有的库依赖老旧的库,解析依赖会出错,true如果打包不成功,就改成false --><minimum>true</minimum><!--应用程序名称--><name>${project.artifactId}</name><!--主运行类--><mainClass>com.secondsearch.SecondSearchApplication</mainClass><!--是否显示控制台--><winConsole>false</winConsole><!--应用程序图标--> <icon>${project.basedir}/src/main/resources/icon/icon.ico</icon><!--可选app-image、exe、msi、rpm、deb、pkg、dmg,msi需要另外一个程序配合,app-image是exe绿色版,exe是安装包,其他自行搜索--><type>app-image</type><appVersion>1.0.0</appVersion><copyright>版权</copyright><vendor>厂商</vendor><description>描述</description><!-- 是否递归分析依赖,一般false就可以,改成true,增强打包兼容性,不过打包会变慢,不填此参数,默认false --><!--<recursive>false</recursive>--><!--<jarName>${project.build.finalName}.jar</jarName>--><!--jvm option--><!--<javaOptions>-Dserver.port=8888 -Djava.awt.headless=false</javaOptions>--><!--jar包生成目录,对应上面两个输出的libs--><!--<libs>libs</libs>--></configuration></plugin>

How to use

mvn clean package

Config

paramdescriberequired
minimum是否最小打包,精简虚拟机false
name打包后的应用程序名称true
mainClass启动类true
type打包的类型,app-image、exe、msi、rpm、deb、pkg、dmgfalse
recursive是否递归分析依赖false
winConsole是否打开控制台,方便debugfalse
icon应用程序图标,windows需要icofalse
appVersion应用程序版本false
copyright应用程序版权false
vendor应用程序厂商false
description应用程序描述,会显示在windows进程上false
javaOptionsjvm参数false
jarName如果您改了带有主方法的jar名称,那需要您指定名称false
workDirectory如果您改了编译目录,那workDirectory下一定要有libsfalse
libs编译后的所有jar的目录false

Open source

https://gitee.com/52jian/EasyPackage
https://github.com/Janix520/EasyPackage

License

Apache-2.0 license


http://www.mrgr.cn/news/57989.html

相关文章:

  • 数据结构——哈夫曼树及其应用(哈夫曼编码)
  • JAVA Maven 的安装与配置
  • 使用DeepSpeed进行单机多卡训练
  • WPF+Mvvm项目入门完整教程-基于SqlSugar的数据库实例(三)
  • CMOS 图像传感器:像素寻址与信号处理
  • STM32(二十一):看门狗
  • JAVA应用测试,线上故障排查分析全套路!
  • C++,STL 045(24.10.24)
  • 【Linux】进程状态及其转换
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(八)——移植工程分享
  • 头歌——人工智能(遗传算法)
  • 获取图像的风格矩阵
  • 现场总是发生急停,很可能是PLC和设置间网络中断
  • make_blobs函数
  • Django+Vue全栈开发旅游网项目首页
  • python实战(二)——房屋价格回归建模
  • 九、Linux实战案例:项目部署全流程深度解析
  • 【C++笔记】类和对象(下)
  • Java中的集合-Map和set(java数据结构)
  • 【SpringCloud】基础问题
  • 力扣每日一题3185. 构成整天的下标对数目 II
  • linux笔记(NFS服务)
  • WPF的UpdateSourceTrigger属性
  • Matlab|基于氢储能的热电联供型微电网优化调度方法
  • 全网最全文件格式详解:npy/npz/h5/hdf5/pkl/hdf/tfrecord/parquet/csv/txt/feather
  • 记录一次线上环境svchost.exe antimalware service executable 进程占用CPU过高问题