宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述maven项目打包插件:将maven项目打包成一个可执行的jar(瘦jar)相关的知识,希望能为你提供帮助。
通过maven-dependency-plugin插件和maven-jar-plugin来组合,maven-jar-plugin其实是maven项目自带的,在pom文件里面不依赖也是可以的,但是我需要修改一些其他属性,比如把lib添加到addClasspath下面,classpathPrefix设置前缀,mainClass方法指定运行的主方法,这样打包之后在jar里面的MANIFEST.MF里面就会有自动把lib包下面的依赖包自动添加进去,然后把可执行的jar包和lib文件夹放在同一个目录下面就可以自动读取到lib里面的jar包了,要想在同目录下面生成lib目录,就需要依靠第二个插件maven-dependency-plugin,这个插件就是把maven项目在pom文件里面依赖的jar包全部放到指定的目录下面去,比如这里的例子就是把依赖包全部输出到project.build.directory/lib,其中的{project.build.directory}/lib,其中的project.build.directory/lib,其中的{project.build.directory}是maven环境自带的内置变量。
< build>
< plugins>
< plugin>
< groupId> org.apache.maven.plugins< /groupId>
< artifactId> maven-dependency-plugin< /artifactId>
< version> 2.10< /version>
< executions>
< execution>
< id> copy-dependencies< /id>
< phase> package< /phase>
< goals>
< goal> copy-dependencies< /goal>
< /goals>
< configuration>
< outputDirectory> ${project.build.directory}/lib< /outputDirectory>
< /configuration>
< /execution>
< /executions>
< /plugin>
< plugin>
< groupId> org.apache.maven.plugins< /groupId>
< artifactId> maven-jar-plugin< /artifactId>
< version> 2.4< /version>
< configuration>
< archive>
< manifest>
< addClasspath> true< /addClasspath>
< classpathPrefix> lib< /classpathPrefix>
< mainClass> com.zxl.minio.FileUploader< /mainClass>
< /manifest>
< /archive>
< /configuration>
< /plugin>
< /plugins>
< /build>
【maven项目打包插件(将maven项目打包成一个可执行的jar(瘦jar))】执行时需要将?
?lib?
?目录和jar文件放在一起,不然找不到依赖文章图片
推荐阅读
- #yyds干货盘点# 使用 exe4j 将 jar 包生成 .exe 文件(敲详细)
- #yyds干货盘点#我对Redis持久化 做了一个全面的总结
- TypeScript 之 More on Functions
- Java编程中忽略这些细节,Bug肯定找上你
- Python 进阶 — Flake8 静态代码检查工具
- 如何理解Debian仓库地址
- opencv 灰度图二分类 (人脸识别 非HOG)sklearn 机器学习
- 存储结构与管理硬盘(part3)
- SpringBoot+RabbitMQ 实现 RPC 调用