mvn 打包可执行包_Maven项目打包可执行jar包
我们在使用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即可进入编译,并将文件输出到你上述代码配置好的输出文件夹中
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
配置与上述maven-assembly-plugin差不多,这里不再赘述
maven-jar-plugin
maven官方自带的插件,只会将当前的项目源码编译,只会打成单个jar包,个人感觉比较这种适合发布比较单一的开源库,打包出来的jar包文件体积会比较小
生成的jar包在target目录下
补充——JavaFx的Maven打包插件
com.zenjava
javafx-maven-plugin
8.8.3
site.starsone.resetrial.app.MyApp
**打包出来的文件不是单个文件,而是一个文件夹,**里面包含一个lib文件夹及主程序jar包文件,lib文件夹中放了依赖的各个jar包,输出目录在target/jfx文件夹中
参考
还没有评论,来说两句吧...