简介

用spring boot快速开发时,通常用spring-boot-maven-plugin插件将springboot的应用程序打包成jar文件,然后通过java -jar运行,很方便。但是如果是部署到服务器上,每次更改代码后替换的包都比较大,至少30MB以上,依赖jar多的甚至超过100MB,传输效率就降低了,其实真正的代码jar是很小的,所以要想办法给jar瘦身。

一、maven-jar-plugin

maven-jar-plugin是jar包生成插件,提供了manifest的配置,生成jar包中一般存放的是.class文件已经resources目录下的东西,文件很小。

二、spring-boot-maven-plugin

从官网的介绍来看,spring-boot-maven-plugin主要目标是spring-boot的启动、停止、运行和repackage,对于打包来说那就是repackage,也就是说它实现的打包功能是重新打包,原始jar包还是由maven-jar-plugin生成的。

三、区别和联系

我们将普通插件maven-jar-plugin生成的包和spring-boot-maven-plugin生成的包进行比较,发现使用spring-boot-maven-plugin生成的jar中主要增加了两部分,第一部分是lib目录,这里存放的是应用的Maven依赖的jar包文件,第二部分是spring boot loader相关的类,所以通常spring-boot-maven-plugin插件打的jar包程为fatjar或者胖jar。

四、总结

所以如果是用部署到生产或者服务器环境最好通过maven-jar-plugin打包,初次打包可以结合maven-assembly-plugin打成压缩文件,以后只需要传送更改的代即可。

spring boot中打包插件spring-boot-maven-plugin和maven-jar-plugin的关联相关推荐

  1. maven打包插件----Spring Boot Maven Plugin

    官方文档链接地址:http://docs.spring.io/spring-boot/docs/1.3.0.BUILD-SNAPSHOT/maven-plugin/index.html 第一部分 Sp ...

  2. Spring Boot中普通类获取Spring容器中的Bean

    我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,自己动手n ...

  3. springboot 访问html_Spring Boot中使用Spring Security进行安全控制

    我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(如:Apache ...

  4. Spring Boot中使用Spring Security进行安全控制

    我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(如:Apache ...

  5. Spring中使用XML方式导入Spring配置文件,Boot中使用全注解导入Spring配置

    目录 Spring中的方法 Spring Boot中的方法 Spring中的方法 @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效: Spring Boot里面没有 ...

  6. webbrowser中localhost和发布的地址_004、Spring Boot中的项目属性配置

    我们知道,在项目中,很多时候需要用到一些配置的信息,这些信息可能在测试环境和生产环境下会有不同的配置,后面根据实际业务情况有可能还会做修改,针对这种情况,我们不能将这些配置在代码中写死,最好就是写到配 ...

  7. 8.Spring Boot中使用thymeleaf

    Spring Boot中使用thymeleaf Spring Boot支持FreeMarker.Groovy.Thymeleaf和Mustache四种模板解析引擎,官方推荐使用Thymeleaf. s ...

  8. Spring Boot中使用MongoDB,使用 Repository以及使用MongoTemplate

    文章目录 Spring Boot中使用MongoDB MongoDB Repository使用实例 导入依赖 配置MongoDB 定义Model 定义Repository 进行使用 MongoTemp ...

  9. spring boot获取spring容器中的bean对象

    我们知道如果我们要在一个类使用  spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接 ...

最新文章

  1. 函数式编程语言python-函数式编程初探
  2. Fragment详解之五——Fragment间参数传递
  3. 第三章:3.8 周期信号的傅里叶变换
  4. C语言操作符(又称运算符)(2)
  5. 结合awk列举大于指定容量大小所有文件目录
  6. Unity 网络编程(Socket)应用
  7. 洛谷P3607:Subsequence Reversal P(区间dp)
  8. HTML DOM之标签操作方法
  9. linux 取出字符中数字,使用awk提取字符串中的数字或字母
  10. this.scrollheight获取textarea的高度是0_53小米电子时钟/v1.0 介绍
  11. 小米架构调整:将销售与服务部改组为中国区 王川任总裁
  12. 【SQL篇章--CREATE TABLE】
  13. 《R数据可视化手册》——3.8 绘制百分比堆积条形图
  14. 蜡笔小新模拟器汉化版_FC蜡笔小新条码版下载-蜡笔小新条码版FC模拟器下载-电玩咖...
  15. MATLAB如何导出高分辨率的模型图片、PDF
  16. 为了IT,加强身体锻炼之【双盘腿打坐的好处】
  17. 在vue中使用wow动画插件(下载,配置,使用,参数)
  18. 登录到接收邮件服务器(pop3):验证失败,Office2010的outlook pop3邮箱设置问题
  19. java之元数据(metadata)
  20. 大学四年学习生活成长总结

热门文章

  1. c语言int a什么意思,问一下吧里大神 int a = a; 这么定义是什么意思?
  2. php双向链表+性能,PHP双向链表定义与用法示例
  3. [转载] Java ArrayList toArray(T[] a) 解惑
  4. Java包hashCode()方法及示例
  5. c++freopen函数_使用示例的C语言中的freopen()函数
  6. oracle认证都需要考哪几个方面,Oracle OCP认证要通过哪些考试
  7. Linux中对进程的管理
  8. mysql if语句后面执行两个语句_MySQL的if,case语句使用总结
  9. apple组织名称是什么_什么是Apple Macintosh?
  10. Java Formatter format()方法及示例