[maven] springboot将jar包打包到指定目录
大家好,我是烤鸭:
今天分享一下springboot将jar包打包到指定目录下。
由于之前上线都是一个打包到一个jar,由于服务多了,1个包100多M,哪怕是小版本上线都需要重新上传jar包。
1.目的
将不常用的比如spring,druid等不常用打包到lib目录,这样每次上线不需要上传这些。第三方或者常改动的还打包到本身的jar包内,每次上线都会新打包。
这样原来的100多M的jar包,可以变成2、3M。
如图所示:
原来的打包方式
改后的方式:
2.修改pom
简单解释一下,includes标签内就是打入jar包第三方jar。将上面的2M的包解压缩后,就是includes的包。如图所示。
excludeGroupIds和excludeArtifactIds 是配置不在lib目录里的包,由于java启动加载的机制是优先加载jar包,
再加载外部目录,如果jar包都存在两个地方,这样配置就没有意义了,每次还是得重新发布lib目录,所以将includes
中的包,再在excludeGroupIds 和 excludeArtifactIds 配置上。
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.0.5.RELEASE</version><executions><execution><goals><goal>repackage</goal><goal>build-info</goal></goals></execution></executions><configuration><layout>ZIP</layout><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include><include><groupId>com.etc</groupId><artifactId>etc-manage-api</artifactId></include><include><groupId>com.etc</groupId><artifactId>etc-manage-core</artifactId></include><include><groupId>com.etc</groupId><artifactId>etc-manage-rpc-api</artifactId></include><include><groupId>com.sinoiov.etc.apollo</groupId><artifactId>apollo-spring-boot-starter</artifactId></include></includes></configuration></plugin><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><excludeGroupIds>com.sinoiov.etc.apollo</excludeGroupIds><excludeArtifactIds>etc-manage-api,etc-manage-core,etc-manage-rpc-api</excludeArtifactIds><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins>
</build>
3.修改启动脚本
原脚本
java -jar etc-manage-service-basic-2.2.0.jar
现脚本 (如果相对目录不好用,就用绝对目录试试)
java Dloader.path=../lib -jar etc-manage-service-basic-2.2.0.jar
[maven] springboot将jar包打包到指定目录相关推荐
- Maven引入本地jar包,解决打包时找不到本地jar包
springboot,maven引入本地jar,生成pdf使用,找不到类问题 参考:Maven引入本地jar包,解决打包时找不到本地jar包 日志 Caused by: java.lang.NoCla ...
- IDEA+SpringBoot+Maven 引入三方Jar包
总结一下在IDEA+SpringBoot+Maven环境下引入三方jar方式 项目工程目录下新建目录lib,将需要引入jar包放入lib目录下 修改pom文件 <dependency>&l ...
- Maven依赖的Scope去除部署不需要的jar 包(打包)
2019独角兽企业重金招聘Python工程师标准>>> Maven依赖的Scope去除部署不需要的jar 包(打包) 博客分类: java maven <dependency& ...
- 利用aether api实现从指定maven仓库下载jar包
最近公司做项目遇到一个需求,通过用户提供的groupId和artifactId以及version到指定maven库中下载jar包.平时的maven项目中,依赖的jar包都是通过pom文件设置,然后ma ...
- Maven工程打jar包的N种方式
Maven工程打jar包 一.IDEA自带打包插件 二.maven插件打包 2.1 制作瘦包(直接打包,不打包依赖包) 2.2 制作瘦包和依赖包(相互分离) 2.3 制作胖包(项目依赖包和项目打为一个 ...
- java原生和SpringBoot读取jar包中MANIFEST.MF的方式
我们经常看到java的一些jar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性. 本文讲解如何读取jar包中M ...
- SpringBoot 打成jar包供第三方引用自动装配方案实现
SpringBoot 打成jar包供第三方引用自动装配方案实现 每天多学一点点~ 话不多说,这就开始吧- 文章目录 SpringBoot 打成jar包供第三方引用自动装配方案实现 1.前言 2.使用者 ...
- IDEA中MAVEN项目打JAR包的简单方法
Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令. 最简单的方法 首先是在 ...
- Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像
DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包 准备文件 一:官网下载Linux的JDK包 https://www.oracle.com/j ...
最新文章
- 以色列对话国际农民丰收节贸易会-万祥军:谋定无中生有
- UVA 1613 K-Graph Oddity K度图着色 (构造)
- html 和 body标签的 css 设置
- 应该在什么时候使用Hadoop
- 手把手教你玩转ARP包(四)
- lua的string.gsub初使用
- opencv运动目标跟踪预测_基于Opencv的运动目标的检测和跟踪.pdf
- nodejs mysql save_NodeJs Mysql简易操作工具
- aix mysql日志,一次AIX 操作系统ASM添加磁盘的操作日志
- 实习成长之路——设计模式三:组合与继承有啥关系?为什么说多用组合少用继承?如何选择使用哪种方式?
- abortonerror_错误:无法解决:com.android.support:appcompat-v7:24.0.0
- treetable怎么带参数_jQuery.treetable使用及异步加载
- 致远互联开始向云端生态发力奔跑
- 系统找不到指定路径,网络编程
- 苹果自带的清理软件_苹果电脑清理软件哪个好
- HTTP的options方法作用
- git log vs git diff 中的点式范围(Dotted Range Notations)异同
- 人工智能在计算机领域中的应用
- 工业poe交换机供电方法
- Android二維碼掃描
热门文章
- [html] 请使用canvas画一个渐变的长方形
- 工作380-js判断是否为空
- 前端学习(1522):vue-cli创建项目
- 第九十一期:架构设计常用到的10种设计模式,你都知道吗?
- java学习(150):文本缓冲流
- java学习(99):车站卖票问题
- java和node.js 2018_node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况
- [机器学习笔记]Note8--机器学习应用建议
- springboot启动过程_spring5/springboot2源码学习 -- spring boot 应用的启动过程
- 测试sql语句的执行效率