mvn 打包可执行包_Maven项目打包可执行jar包

分手后的思念是犯贱 2023-01-10 05:23 285阅读 0赞

我们在使用Maven的时候,经常需要对项目进行打包部署,如果是Spring Boot项目还好,直接通过命令install即可编译当前项目并生成一个可执行的jar包,如果我们不是Spring Boot项目的话,那么可以选择Maven的插件进行打包操作。

搜集网上的资料,常见的Maven打包有三个,分别为maven-assembly-plugin、maven-shade-plugin,maven-jar-plugin

plugin说明

maven-jar-pluginmaven 默认打包插件,用来创建 project jar

maven-shade-plugin用来打可执行包,executable(fat) jar

maven-assembly-plugin支持定制化打包方式,例如 apache 项目的打包方式

本文只涉及简单的使用,相关详细的配置使用请参阅其他文章

maven-assembly-plugin

插件的话,我们只需要在pom.xml文件中的plugins标签内添加plugin标签即可

org.apache.maven.plugins

maven-assembly-plugin

2.2

test

out

false

site.starsone.resetrial.app.MyApp

jar-with-dependencies

之后使用,只需要点击IDEA的右边侧边栏中的插件,选中assembly即可进入编译,并将文件输出到你上述代码配置好的输出文件夹中

02a2ae7be83ab996f8ab3b19d74d910f.png

maven-shade-plugin

此插件与上面的插件十分类似,唯一不同点,就是此插件可以在打包的时候自动将没有依赖的jar包忽略,但是实际测试过程中,我发现其不适用TornadoFx框架的项目(或者说是Kotlin的项目),运行jar包会报找不到xx类的错误

org.apache.maven.plugins

maven-shade-plugin

2.4.3

package

shade

implementation=”org.apache.maven.plugins.shade.resource.ManifestResourceTransformer”>

org.global.fairy.service.impl.Assembly

test

out

true

f931c4ef7913cf28e6c61f9aba63f398.png

配置与上述maven-assembly-plugin差不多,这里不再赘述

maven-jar-plugin

maven官方自带的插件,只会将当前的项目源码编译,只会打成单个jar包,个人感觉比较这种适合发布比较单一的开源库,打包出来的jar包文件体积会比较小

598467286a510ea58915a56cd7b80cc8.png

生成的jar包在target目录下

补充——JavaFx的Maven打包插件

com.zenjava

javafx-maven-plugin

8.8.3

site.starsone.resetrial.app.MyApp

5d4187e4f13b66ed0a5933b3de91379f.png

**打包出来的文件不是单个文件,而是一个文件夹,**里面包含一个lib文件夹及主程序jar包文件,lib文件夹中放了依赖的各个jar包,输出目录在target/jfx文件夹中

参考

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读