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

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.kler.cn/news/363948.html

相关文章:

  • ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)
  • 【实战案例】Django框架表单处理及数据库交互
  • 1024程序员节的来源
  • 青少年编程能力等级测评CPA C++(三级)-试卷2
  • linux笔记(SSH)
  • 【哈工大_操作系统理论】L282930 生磁盘的使用从生磁盘到文件文件使用磁盘的实现
  • 小程序开发语言Java跟php的区别
  • Element Plus的el-tree-v2 组件实现仅叶子节点显示勾选框,并且只能单选
  • MYSQL-SQL-04-DCL(Data Control Language,数据控制语言)
  • 若依框架vue3模板
  • 单例模式是一种常见的设计模式,确保一个类只有一个实例,并提供一个全局访问点。
  • Linux Redis查询key与移除日常操作
  • 尚硅谷redis 第97节 redisTmplate下答疑
  • 代码随想录算法训练营第二天| 209.长度最小的子数组 59.螺旋矩阵II 区间和 开发商购买土地
  • 身份证识别JAVA+OPENCV+OCR
  • ref属性的作用对象类型
  • 文件操作(1) —— 文件基础知识
  • 【C++】——list 容器的解析与极致实现
  • 修改IDEA中@author变量user内容
  • 开源软件搜索工具:Reddo
  • React是如何处理事件的?
  • linux 将已经启动的java应用的控制台日志输出出来, 不停应用的情况下
  • Java 使用 itextpdf 自定义 生成 pdf
  • CSS 网格布局
  • 前端发送请求格式
  • 2024昆明ICPC A. Two-star Contest(直观命名+详细注释)