美文网首页程序员程序园
Spring Boot Gradle 瘦身打包 Thin Jar

Spring Boot Gradle 瘦身打包 Thin Jar

作者: JIGI | 来源:发表于2019-04-26 03:51 被阅读6次

    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就可以了。


    很讨厌在这种配置、折腾的东西上浪费时间,没啥技术含量,但弄不好又非常影响效率。
    发布出来希望帮更多的人节省时间。

    相关文章

      网友评论

        本文标题:Spring Boot Gradle 瘦身打包 Thin Jar

        本文链接:https://www.haomeiwen.com/subject/etsxnqtx.html