Spring Boot gradle 打包瘦身减少jar包体积 含demo
Spring Boot 1.5.x 打包
demo项目地址
https://gitee.com/youngboyvip/package-example
解决问题
Spring Boot 项目包太大上传服务器费时
优化原理
把占空间的 lib
目录移到外面去,打包时指定loader
为PropertiesLauncher
,启动时使用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/maven
或META-INF/thin.properties
路径中解析出依赖的jar包,
然后从本地仓库或远程仓库拉取jar包,然后使用ThinJarLauncher
运行 Main
函数
使用说明
运行 thinJar
任务打包
运行 java -jar jar包名
启动
注意事项
别忘了配置 apply plugin: 'maven-publish'
插件,不然不会生成pom文件
文档参考
文档
maven 项目参考
使用maven插件即可
文档
Spring Boot gradle 打包瘦身减少jar包体积 含demo相关推荐
- 把Spring Boot项目打为可执行jar包
前言 这两天没太多事了,就去学了一下后端的内容,发现只要有基础了,学其他的还是挺快的. 本篇解决的是SpringBoot打成可执行的jar包,在网上找别人直接用命令,可是我这边显示错误,于是就自己查了 ...
- spring boot项目精简瘦身打包
1.背景介绍 当网络不是很给力的时候,一个大的jar包传输是费时的,往往存在修改1分钟,传包10分钟的尴尬时刻. 1)正常打包出来的jar 2)解压出来后的包大小98M 3)lib的jar包大小 综上 ...
- Spring boot 集成ip2region.xdb,在jar包中的使用
依赖 <dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</arti ...
- Spring Boot Gradle 瘦身打包 thinJar,分离 lib jar 依赖
原文地址:weiku.co/article/135/ ,欢迎转载 需求背景: srping boot 2.0+ 打包生产的 fat jar 虽然部署起来很方便,但将所有依赖都打包到一个 jar 包中使 ...
- .jar中没有主清单属性_IDEA中spring boot helloword打包运行-0228-2020
1.新建maven项目 2.项目构建 3.项目启动 4.打包启动 1.IDEA中新建maven项目 创建项目时选择 Maven,但是不必选择项目骨架, 直接单击 Next 按钮即可 输入组织名称.模块 ...
- Maven打包(瘦身打包部署),不包含第三方依赖jar包
方式1 pom 配置 <properties><startClass>com.answer.jaemon.Application</startClass> < ...
- 将Spring Boot项目打包成jar包war包
任务一:将Spring Boot项目打包成jar包 1.在pom.xml文件中添加依赖 2.通过cmd命令行来进行打包jar包(首先进入项目的目录中) 3.进入项目中的target目录下查看包 4.使 ...
- spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器
Spring Boot项目打包并部署到云服务器 一.云服务器的环境 OS: CentOS 7 Jdk 1.8 Spring Boot自动集成Tomcat,不需要单独配置 二.本地Spring Boot ...
- Spring boot Gradle项目搭建
Spring boot Gradle项目搭建 使用IDEA创建Gradle工程 操作大致为:File->new->Project->Gradle(在左侧选项栏中) 创 ...
最新文章
- 怎样训练YOLOv3
- 过了所有技术面,却倒在 HR 一个问题上。。
- Diango博客--7.自动生成文章摘要
- [BZOJ 5072]小A的树
- pythonpy文件打包成exe软件
- volatile指令重排_学会了volatile,你变心了,我看到了
- java8循环_Java8里请不要再使用循环语句
- 计算机未来的发展趋势三百字,数字媒体毕业论文5000字_大专毕业论文5000字_计算机类毕业论文5000字文库...
- fr4走线宽度_PCB布线走线宽度变化的影响分析
- java笔试记录(基础知识复习)
- 批量删除新浪微博关注
- ubuntu 12.04 安装 Anjuta
- 文件共享服务器 域组访问设置权限,怎么对局域网所共享的文件进行访问权限管理...
- 熊出没之奇幻空间里面的机器人图片_《熊出没之奇幻空间》里面令人触动的两个角色...
- Android使用七牛实现录像加时间水印和拍照(截帧回调)
- 如何进行seo搜索引擎优化(搜索引擎SEO优化)
- 和睦小镇保卫战服务器位置,植物大战僵尸和睦小镇保卫战隐藏黄金地精及机关位置汇总[多图]...
- nexus-搭建私服--踩坑记
- C语言入门part5
- 纯css实现优惠券效果
热门文章
- make,makefile和脚本之间什么关系?makefile是一种脚本吗?【转】
- python保存到指定文件夹_Python文件夹与文件的相关操作(推荐)
- rediscrawlSpider使用-亚马逊图书案例
- html5机械双语源码,宽屏蓝色大气的云信CMS源码,中英文双语切换,外贸网站CMS源码,生成静态HTML...
- Ubuntu开发环境配置(七) 卸载Mysql
- 【历史上的今天】2 月 3 日:“开源”一词诞生;比尔·盖茨发表《致电脑爱好者的公开信》;“雾件”问题被提出
- 转贴:网友windy.杜^ 影音之实现中英文字幕之我的解决方案
- 扩展屏的鼠标左右移动
- 好用的自定义Okhttp日志拦截器
- vue版本--腾讯地图demo,可搜索关键字和经纬度,显示地图和搜索结果列表