Spring Boot 1.5.x 打包

demo项目地址
https://gitee.com/youngboyvip/package-example

解决问题

Spring Boot 项目包太大上传服务器费时

优化原理

把占空间的 lib 目录移到外面去,打包时指定loaderPropertiesLauncher,启动时使用loader.path制定 lib 目录的位置

参考文档
bootReapckage 文档67.3 Packaging executable jar and war files 章节 点我
Spring Boot Loader 原理 E.1 Nested JARs 章节 点我

gradle task写法

Spring 1.5.x版本适用 2.x版本不适用

configurations {mycustomconfiguration //单独配置configuration
}dependencies {//给mycustomconfiguration 配置依赖,如果你不配那lib/中就不会有jar包mycustomconfiguration "org.liquibase:liquibase-core"
}//复制依赖jar包的任务,会在build/libs 目录下面生成lib.zip文件
task copyJars(type: Zip) {from(configurations.compile) destinationDir file("build/libs") archiveName "lib.zip"
}task clientJar(type: Jar) {appendix = 'slim'from sourceSets.main.output exclude('.*/lib/**') manifest {attributes 'Main-Class':'org.springframework.boot.loader.PropertiesLauncher'}
}task bootJar(type: BootRepackage, dependsOn: clientJar) {springBoot.layout = 'zip'withJarTask = clientJar customConfiguration = "mycustomconfiguration"
}

打包命令 执行bootJar 就ok了

启动方法

STEP1: 解压lib.zip 文件到lib文件夹

STEP2: 执行命令

java -Dloader.path="lib/,WEB-INF/classes" -jar 你jar包的名字

Spring Boot 2.x 打包

使用spring-boot-thin-launcher插件打包SpringBoot项目

github地址传送门

优化原理

使用 ThinJarWrapper 装载器从jar包 pom.xml/META-INF/mavenMETA-INF/thin.properties路径中解析出依赖的jar包,

然后从本地仓库或远程仓库拉取jar包,然后使用ThinJarLauncher 运行 Main 函数

使用说明

运行 thinJar 任务打包

运行 java -jar jar包名 启动

注意事项

别忘了配置 apply plugin: 'maven-publish' 插件,不然不会生成pom文件

文档参考

文档

maven 项目参考

使用maven插件即可
文档

Spring Boot gradle 打包瘦身减少jar包体积 含demo相关推荐

  1. 把Spring Boot项目打为可执行jar包

    前言 这两天没太多事了,就去学了一下后端的内容,发现只要有基础了,学其他的还是挺快的. 本篇解决的是SpringBoot打成可执行的jar包,在网上找别人直接用命令,可是我这边显示错误,于是就自己查了 ...

  2. spring boot项目精简瘦身打包

    1.背景介绍 当网络不是很给力的时候,一个大的jar包传输是费时的,往往存在修改1分钟,传包10分钟的尴尬时刻. 1)正常打包出来的jar 2)解压出来后的包大小98M 3)lib的jar包大小 综上 ...

  3. Spring boot 集成ip2region.xdb,在jar包中的使用

    依赖 <dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</arti ...

  4. Spring Boot Gradle 瘦身打包 thinJar,分离 lib jar 依赖

    原文地址:weiku.co/article/135/ ,欢迎转载 需求背景: srping boot 2.0+ 打包生产的 fat jar 虽然部署起来很方便,但将所有依赖都打包到一个 jar 包中使 ...

  5. .jar中没有主清单属性_IDEA中spring boot helloword打包运行-0228-2020

    1.新建maven项目 2.项目构建 3.项目启动 4.打包启动 1.IDEA中新建maven项目 创建项目时选择 Maven,但是不必选择项目骨架, 直接单击 Next 按钮即可 输入组织名称.模块 ...

  6. Maven打包(瘦身打包部署),不包含第三方依赖jar包

    方式1 pom 配置 <properties><startClass>com.answer.jaemon.Application</startClass> < ...

  7. 将Spring Boot项目打包成jar包war包

    任务一:将Spring Boot项目打包成jar包 1.在pom.xml文件中添加依赖 2.通过cmd命令行来进行打包jar包(首先进入项目的目录中) 3.进入项目中的target目录下查看包 4.使 ...

  8. spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器

    Spring Boot项目打包并部署到云服务器 一.云服务器的环境 OS: CentOS 7 Jdk 1.8 Spring Boot自动集成Tomcat,不需要单独配置 二.本地Spring Boot ...

  9. Spring boot Gradle项目搭建

    Spring boot Gradle项目搭建 使用IDEA创建Gradle工程     操作大致为:File->new->Project->Gradle(在左侧选项栏中)     创 ...

最新文章

  1. 怎样训练YOLOv3
  2. 过了所有技术面,却倒在 HR 一个问题上。。
  3. Diango博客--7.自动生成文章摘要
  4. [BZOJ 5072]小A的树
  5. pythonpy文件打包成exe软件
  6. volatile指令重排_学会了volatile,你变心了,我看到了
  7. java8循环_Java8里请不要再使用循环语句
  8. 计算机未来的发展趋势三百字,数字媒体毕业论文5000字_大专毕业论文5000字_计算机类毕业论文5000字文库...
  9. fr4走线宽度_PCB布线走线宽度变化的影响分析
  10. java笔试记录(基础知识复习)
  11. 批量删除新浪微博关注
  12. ubuntu 12.04 安装 Anjuta
  13. 文件共享服务器 域组访问设置权限,怎么对局域网所共享的文件进行访问权限管理...
  14. 熊出没之奇幻空间里面的机器人图片_《熊出没之奇幻空间》里面令人触动的两个角色...
  15. Android使用七牛实现录像加时间水印和拍照(截帧回调)
  16. 如何进行seo搜索引擎优化(搜索引擎SEO优化)
  17. 和睦小镇保卫战服务器位置,植物大战僵尸和睦小镇保卫战隐藏黄金地精及机关位置汇总[多图]...
  18. nexus-搭建私服--踩坑记
  19. C语言入门part5
  20. 纯css实现优惠券效果

热门文章

  1. make,makefile和脚本之间什么关系?makefile是一种脚本吗?【转】
  2. python保存到指定文件夹_Python文件夹与文件的相关操作(推荐)
  3. rediscrawlSpider使用-亚马逊图书案例
  4. html5机械双语源码,宽屏蓝色大气的云信CMS源码,中英文双语切换,外贸网站CMS源码,生成静态HTML...
  5. Ubuntu开发环境配置(七) 卸载Mysql
  6. 【历史上的今天】2 月 3 日:“开源”一词诞生;比尔·盖茨发表《致电脑爱好者的公开信》;“雾件”问题被提出
  7. 转贴:网友windy.杜^ 影音之实现中英文字幕之我的解决方案
  8. 扩展屏的鼠标左右移动
  9. 好用的自定义Okhttp日志拦截器
  10. vue版本--腾讯地图demo,可搜索关键字和经纬度,显示地图和搜索结果列表