項目地址 gitee.com/youngboyvip…html
Spring Boot 項目包太大上傳服務器費時java
把佔空間的 lib
目錄移到外面去,打包時指定loader
爲PropertiesLauncher
,啓動時使用loader.path
制定 lib
目錄的位置git
參考文檔 bootReapckage 文檔67.3 Packaging executable jar and war files
章節 點我 Spring Boot Loader 原理 E.1 Nested JARs 章節
點我github
Spring 1.5.x版本適用 2.x版本不適用spring
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了bash
STEP1: 解壓lib.zip 文件到lib文件夾服務器
STEP2: 執行命令app
java -Dloader.path="lib/,WEB-INF/classes" -jar 你jar包的名字
複製代碼
使用spring-boot-thin-launcher
插件打包SpringBoot項目maven
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插件便可 文檔