1.问题
srping boot 2.0+
打包生产的fat jar
太大了(40M+),每次发布的时候实在吃不消,如果能像ASP.Net Core
一样每次发布都平铺依赖和APP Assembly,那我们只需第一次发布完依赖,之后的更新把App Assembly
挑出来发布就可以了,一般app只有几十kb,传输压力小了几千倍。
2. 解决
网上一般都是用Maven那套东西在做,但是我项目是gradle构建的,不想改了,搜了半天没看到现成的可以抄的解决方案。
目前只有spring-boot-thin-launcher的这个仓库可以用。
3. 代码
具体解释去看原仓库好了,这里只给出代码
在build.gradle的最前面加上:
buildscript {
ext {
springBootVersion = '2.0.1.RELEASE'
wrapperVersion = '1.0.21.RELEASE'
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath("org.springframework.boot.experimental:spring-boot-thin-gradle-plugin:${wrapperVersion}")
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'maven'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.springframework.boot.experimental.thin-launcher'
jar.dependsOn = [thinProperties]
然后运行
gradle thinResolve
生成的代码在./build/thin/root
下,只需要像正常情况下一样java -jar myapp.jar
就可以了。
很讨厌在这种配置、折腾的东西上浪费时间,没啥技术含量,但弄不好又非常影响效率。
发布出来希望帮更多的人节省时间。
网友评论