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

简介

用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打成压缩文件,以后只需要传送更改的代即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简化java_JAVA之旅-简化java开发

为了降低java开发的复杂性,spring采取了以下4种关键策略基于POJO的轻量级和最小侵入行编程为使不让应用与框架绑死,一个bean不会实现,继承或者导入Spring API相关的任何东西,只是一个普通的java对象。2. 通过依赖注入和面相接口实…

Maven父子结构的项目依赖使用以及打包依赖_微服务项目(maven父子级项目)怎么打包

Maven父子结构的项目依赖使用以及打包依赖 1&#xff1a;在父子结构项目中&#xff0c;如果要是用其他模块的类。在当前项目中的pom中 加入 其他模块的配置 <dependency><groupId>com.spring.mySpring</groupId><artifactId>mySpring-utils</artif…

搭建一个完整的微服务项目

一.项目技术架构 1.技术栈 前台技术 Node.js、Npm、Vue.js、WebPack、Vue Cli、Element UI 后台架构 微服务架构&#xff1a;按照功能拆分N多个服务&#xff0c;每个服务可以独立技术选型,独立开发,独立部署,独立运维.&#xff0c;单个服务使用基于ssm的springboot&#xff0…

java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)

基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)(任务书,毕业论文12000字,程序代码,MySQL数据库)本文分析了基于JAVA的雅思考试管理系统的设计与实现技术&#xff0c;结合实际提出了本系统的总体结构设计和主要模块的功能实现。本系统分为二个子系统:管理员子系统&…

java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI

老赵说起来也能算个Java程序员&#xff0c;可是写过的Java代码并不多&#xff0c;可老赵实实在在是从程序员干起的。虽然肚子里也装了不少的东西&#xff0c;可作为一件乐此不疲的事情&#xff0c;就是看那些所谓“高人”的代码。高人们的行事风格&#xff0c;十人十样&#xf…

Maven搭建Nexus私服

私服的介绍 1 什么是私服 私服是一种特殊的远程仓库&#xff0c;它是架设在局域网的仓库服务&#xff0c;私服代理广域网上的远程仓库&#xff0c;供局域网使用。 在企业开发中&#xff0c;私服的建设是有必要的&#xff0c;其好处如下&#xff1a; 1.1 节省资金、外网带宽…

java类加载面试题_java 类加载过程?【面试题详解】

今天爱分享给大家带来java 类加载过程?【面试题详解】&#xff0c;希望能够帮助到大家。java 类加载需要经历一下 7 个过程:加载加载时类加载的第一个过程&#xff0c;在这个阶段&#xff0c;将完成一下三件事情: 1. 通过一个类的全限定名获取该类的二进制流。2. 将该二进制流…

Java中Calendar类的常用方法

Calendar类常用方法的记录&#xff1a; 获取时间 // 使用默认时区和语言环境获得一个日历Calendar cal Calendar.getInstance();// 赋值时年月日时分秒常用的6个值&#xff0c;注意月份下标从0开始&#xff0c;所以取月份要1System.out.println("年:" cal.get(Cal…

Java啤酒生产系统描述_Java描述设计模式(03):工厂方法模式

一、工厂方法模式1、生活场景系统常见的数据导出功能&#xff1a;数据导出PDF、WORD等常见格式。2、工厂方法模式是类的创建模式&#xff0c;又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工…

@Autowired(required=false)注入注意的问题

1、前言 在使用spring开发过程中&#xff0c;我们基本上都是使用Autowired这个注解&#xff0c;用来注入已有的bean。但是有些时候&#xff0c;会注入失败。当我们加上参数&#xff08;requiredfalse&#xff09;就能解决。今天整理一个我在实际开发中的例子 2、required属性…

jna enum 对应 java_JNA简单使用

近期使用Java开发有关于摄像机接收到数据的上传&#xff0c;因为摄像机处理图像是用C语言实现的&#xff0c;所以开发需要用到JNA&#xff0c;实现JAVA对C语言的回调,因为具体的开发方式官方文档里面有示例&#xff0c;所以本文只是简单的把需要注意的点罗列出来。一、 定义JNA…

java if经典程序_java经典程序(11-20)

package question;import java.util.Scanner;public class Test11_20 {/** 输入一个数据n&#xff0c;计算斐波那契数列的第n个值 并打印所以值* 1 1 2 3 5 8 13* 规律一个数等于前两个数之和*/public void test11(){Scanner sc new Scanner(System.in);int n sc.nextInt();i…

什么是ip地址、子网掩码、网关和DNS?

什么是ip地址、子网掩码、网关和DNS&#xff1f; 什么是ip地址&#xff1f; IP是32位二进制数据&#xff0c;通常以十进制表示&#xff0c;并以“.”分隔。IP地址是一种逻辑地地址&#xff0c;用来标识网络中一个个主机&#xff0c;IP有唯一性&#xff0c;即每台机器的IP在全…

mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复

mysql binlog 简单介绍与基于binlog数据恢复通过备份文件恢复binlog(本节重点)binlog 二进制日志文件show variables like log_bin;二进制日志文件(binary log) 记录了对mysql 数据库执行更改的所有操作, 但是不包括 select 和 show 这类操作,因为这类操作对数据本身没有修改. …

Dubbo:RPC原理

1、RPC原理 一次完整的RPC调用流程如下&#xff1a; 1&#xff09;服务消费方&#xff08;client&#xff09;调用以本地调用方式调用服务&#xff1b; 2&#xff09;client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体&#xff1b; 3&#xff09;clie…

java jni日志输出_java打印Jni层log

要在java层打印c的log必须引入这个头文件的宏定义:#ifndef __LOG#define __LOG#ifdef __cplusplusextern "C"{#endif#include//宏定义类似java 层的定义,不同级别的Log LOGI, LOGD, LOGW, LOGE, LOGF。 对就Java中的 Log.i log.d#define LOG_TAG "HelloJni"…

Dubbo基本原理机制

分布式服务框架&#xff1a; 高性能和透明化的RPC远程服务调用方案SOA服务治理方案Apache MINA 框架基于Reactor模型通信框架&#xff0c;基于tcp长连接 Dubbo缺省协议采用单一长连接和NIO异步通讯&#xff0c; 适合于小数据量大并发的服务调用&#xff0c;以及服务消费者机器…

Dubbo是如何进行远程服务调用的?(源码流程跟踪)

首先会分析Dubbo是如何进行远程服务调用的&#xff0c;如果不了解dubbo的服务暴露和服务调用&#xff0c;请去看前两篇dubbo的文章&#xff0c;然后后面我还会说一下dubbo的SPI机制 当我们在使用reference 注解的时候&#xff0c;来调用我们的提供者的Service对象的时候&#…

JAVA解析存储过程获取的对象_java 解析数据的存储过程的

先定义枚举&#xff1a;public enum ProcParamType {IN,OUT}调用存储过程的描述public class ProcCallableDescriptor {private List procParams new ArrayList();public List getProcParams() {return procParams;}public void addProPram(ProcParam param) {procParams.add(…

Redis五种数据类型及应用场景

Redis五种数据类型及应用场景 MySqlMemcached架构的问题 实际MySQL是适合进行海量数据存储的&#xff0c;通过Memcached将热点数据加载到cache&#xff0c;加速访问&#xff0c;很多公司都曾经使用过这样的架构&#xff0c;但随着业务数据量的不断增加&#xff0c;和访问量的…