简介

在用springboot开发项目是,打包好的jar包是可以直接运行的,但是通常情况下,这个jar都会很大,因为他默认打包了所有依赖的jar包。此时就可以通过maven-dependency-plugin插件将依赖包复制到独立的文件夹,在启动jar包的时候引用即可。

应用方式:  java -Dloader.path=全路径  -jar  xxx.jar

详解

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><type>jar</type><includeTypes>jar</includeTypes><includeScope>runtime</includeScope><outputDirectory>${project.build.directory}/libs</outputDirectory></configuration></execution></executions></plugin>

1:<id>值自定义

2:<outputDicrectory>依赖包的输出目录

3:其他写死

备注:该配置只是把依赖包打包到单独目录,但是并不缩小原有项目包的大小(可以理解成仅仅是复制依赖包到一个独立文件夹)。

踩过的坑

1:多个项目的依赖包复制到同一个文件夹,项目启动异常。

目前开发项目,往往是一个大的项目由多个子项目组合而成,然而不同的子项目依赖的jar包又何其相似,因此我们可能会想到:利用该插件把所有子项目的依赖包复制到同一个文件夹,这样就可以公用。想法真的非常好,但是会出现一个很大的问题,一个项目在启动时默认加载被依赖jar包路径下的所有包,因此多个子项目的jar包用同一个文件夹,那么这个文件夹下的所有jar默认都是被每个子项目引入,然后问题就出来了,有些jar包引入后必须添加相应的配置才能启动,此时项目启动异常。因此建议不同项目复制到不同的包(此为临时的解决方案,应该还有其他更优方式,正在探索中。。。欢迎提供更好的思路)

题外话

刚有提到:上述插件只是把依赖包打包到单独目录,但是并不缩小原有项目包的大小。此时可以借助一下配置剔除依赖包,以达到微缩jar包的目的。

1:mainClass用于指定该jar包启动时的主类(建议加上)

2:<include></include>加上自己项目的groupId和artifactId即可

            <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.besttop.MetadataApplication</mainClass><layout>ZIP</layout><includes><include><groupId>${project.groupId}</groupId><artifactId>${project.artifactId}</artifactId></include></includes></configuration></plugin>

springboot打包-依赖包到单独文件夹并微缩原有jar包体积相关推荐

  1. webpack打包vue项目之后dist文件夹在本地跑起来

    webpack打包vue项目之后dist文件夹在本地跑起来 转载为:https://blog.csdn.net/u014054437/article/details/79981307 谢谢博主 亲测, ...

  2. 解决Pycharm文件夹中同级目录导包报错的问题

    报错情况:导包报错,但程序仍然可以运行 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在 ...

  3. 通过输入ab包名和后缀名自动添加或修改ab包名(同一文件夹下的所有文夹都会被修改包括子文件夹)

    说明 temp = temp.Substring(temp.IndexOf("Assets")); 这段代码主要是获取的文件路径为完整路径,而AssetImporter.GetAt ...

  4. webpack5打包图片并放到指定文件夹下

    webpack5打包图片并放到指定文件夹下 module: {rules: [{test: /\.(jpg|png|gif)$/,type: 'asset/resource',generator: { ...

  5. java 如何读取jar包内资源文件_【解惑】深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  6. jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...

    java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...

  7. linux启动jar包指定日志输出目录下,linux 启动jar包 指定yml配置文件和输入日志文件...

    命令为: nohup java -jar project.jar  --spring.config.location=/home/project-conf/application.yml >  ...

  8. java生成jar包时使第三方jar_IEDA生成可运行jar包(包含第三方jar包)的方法

    最近现网需要处理一下数据,来适配一个场景.安排我来编写一个脚本来实现,由于步骤比较多,且需要调用其他服务接口,使用shell脚本来实现比较困难,所以想到了使用shell脚本调用java可执行jar包的 ...

  9. jar包 jdk 停_一文读懂jar包的小秘密

    简介 java程序员每天不是在创建jar包就是在创建jar包的路上,并且各种依赖引用都是以jar包的形式展示的.但是随着现代IDE的出现,我想很多程序员已经基本上很少直接和jar包打交道了. 换句话说 ...

  10. spring-boot引用资源:图片、json文件、模板目录(jar包运行依旧有效)

    spring-boot引用资源:图片.json文件.模板目录 前端时间,在idea上运行项目OK,但在打成jar包后运行却出了岔子.网上一番搜索,终于得到了解决:使用流,使用类路径 干货 图片,jso ...

最新文章

  1. Xamarin.Forms的相对布局RelativeLayout
  2. vue-cli工程目录结构及相关文件说明
  3. Serverless Live | 9 大场景带你从零实践 Serverless
  4. 二叉树的遍历(非递归方式)
  5. SpringMVC之控制器的单例和多例管理
  6. 数据库编程连接mysql_使用JDBC编程-连接MySQL数据库
  7. System.load(String filename)和System.loadLibrary(String libname)的区别
  8. python自动化办公入门书籍-盘点使用Python进行自动化办公所需要的知识点
  9. 使用Google zxing生成二维码
  10. Oracle 11g 服务名称以及作用
  11. Centos安装maven
  12. 170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?
  13. 来看看你踩坑没有,新手做自媒体却没有收益?原因都在这5点
  14. nginx 会话保持
  15. 高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
  16. 微信小程序实现替换logo功能
  17. linux安装软件时/usr/lib/python2.7/site-packages/urlgrabber/grabber.py文件异常
  18. 只读了半年大学的院士——苹果CEO乔布斯
  19. iOS —label自动换行
  20. 手机当作电脑无线摄像头

热门文章

  1. DeepMD安装及Unbuntu下Nvidia显卡升级(防跳坑)
  2. string.Format字符串格式说明
  3. 一种采集USB热敏小票打印机的硬件,用于商超购物中心营业小票采集的硬件方案
  4. 于娟的忠告----生命只有一次,活着才是王道啊!!!
  5. python项目总结与展望_2018年度总结,2019展望未来
  6. 电脑录制视频的方法很简单 轻松录制完美视频
  7. Outlook设置自动存档
  8. matplotlib.pyplot 绘制图中图
  9. Julia:Plots 包的属性汇总
  10. 物联网应用案例,中易云真实搭建项目