大家好,我是烤鸭:
今天分享一下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包打包到指定目录相关推荐

  1. Maven引入本地jar包,解决打包时找不到本地jar包

    springboot,maven引入本地jar,生成pdf使用,找不到类问题 参考:Maven引入本地jar包,解决打包时找不到本地jar包 日志 Caused by: java.lang.NoCla ...

  2. IDEA+SpringBoot+Maven 引入三方Jar包

    总结一下在IDEA+SpringBoot+Maven环境下引入三方jar方式 项目工程目录下新建目录lib,将需要引入jar包放入lib目录下 修改pom文件 <dependency>&l ...

  3. Maven依赖的Scope去除部署不需要的jar 包(打包)

    2019独角兽企业重金招聘Python工程师标准>>> Maven依赖的Scope去除部署不需要的jar 包(打包) 博客分类: java maven <dependency& ...

  4. 利用aether api实现从指定maven仓库下载jar包

    最近公司做项目遇到一个需求,通过用户提供的groupId和artifactId以及version到指定maven库中下载jar包.平时的maven项目中,依赖的jar包都是通过pom文件设置,然后ma ...

  5. Maven工程打jar包的N种方式

    Maven工程打jar包 一.IDEA自带打包插件 二.maven插件打包 2.1 制作瘦包(直接打包,不打包依赖包) 2.2 制作瘦包和依赖包(相互分离) 2.3 制作胖包(项目依赖包和项目打为一个 ...

  6. java原生和SpringBoot读取jar包中MANIFEST.MF的方式

    我们经常看到java的一些jar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性. 本文讲解如何读取jar包中M ...

  7. SpringBoot 打成jar包供第三方引用自动装配方案实现

    SpringBoot 打成jar包供第三方引用自动装配方案实现 每天多学一点点~ 话不多说,这就开始吧- 文章目录 SpringBoot 打成jar包供第三方引用自动装配方案实现 1.前言 2.使用者 ...

  8. IDEA中MAVEN项目打JAR包的简单方法

    Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令. 最简单的方法 首先是在 ...

  9. Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像

    DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包 准备文件 一:官网下载Linux的JDK包 https://www.oracle.com/j ...

最新文章

  1. 以色列对话国际农民丰收节贸易会-万祥军:谋定无中生有
  2. UVA 1613 K-Graph Oddity K度图着色 (构造)
  3. html 和 body标签的 css 设置
  4. 应该在什么时候使用Hadoop
  5. 手把手教你玩转ARP包(四)
  6. lua的string.gsub初使用
  7. opencv运动目标跟踪预测_基于Opencv的运动目标的检测和跟踪.pdf
  8. nodejs mysql save_NodeJs Mysql简易操作工具
  9. aix mysql日志,一次AIX 操作系统ASM添加磁盘的操作日志
  10. 实习成长之路——设计模式三:组合与继承有啥关系?为什么说多用组合少用继承?如何选择使用哪种方式?
  11. abortonerror_错误:无法解决:com.android.support:appcompat-v7:24.0.0
  12. treetable怎么带参数_jQuery.treetable使用及异步加载
  13. 致远互联开始向云端生态发力奔跑
  14. 系统找不到指定路径,网络编程
  15. 苹果自带的清理软件_苹果电脑清理软件哪个好
  16. HTTP的options方法作用
  17. git log vs git diff 中的点式范围(Dotted Range Notations)异同
  18. 人工智能在计算机领域中的应用
  19. 工业poe交换机供电方法
  20. Android二維碼掃描

热门文章

  1. [html] 请使用canvas画一个渐变的长方形
  2. 工作380-js判断是否为空
  3. 前端学习(1522):vue-cli创建项目
  4. 第九十一期:架构设计常用到的10种设计模式,你都知道吗?
  5. java学习(150):文本缓冲流
  6. java学习(99):车站卖票问题
  7. java和node.js 2018_node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况
  8. [机器学习笔记]Note8--机器学习应用建议
  9. springboot启动过程_spring5/springboot2源码学习 -- spring boot 应用的启动过程
  10. 测试sql语句的执行效率