Spring Boot 用gradle bootJar打包瘦身(外置依赖jar)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

@tian_dao 的办法简单好用

bootJar {
	classifier = 'boot'
	excludes = ["*.jar"]
}

以下方法废弃:


网上SpringBoot打包瘦身的教程很多,但基本都是Maven的。一般公共库都外置,不需要打包进可执行的jar中,这样每次发布都不用传几十兆的文件。

用gradle 的bootJar实际很简单,方法就是把compile 依赖 替换为 compileClasspathcompileClasspath的依赖不会被打包进可运行的jar中。

//打包进jar
//compile("org.springframework.boot:spring-boot-starter-freemarker")

//只打包自己的代码
compileClasspath("org.springframework.boot:spring-boot-starter-web")

另外可以用complie 先配置好,导出依赖的jar到一个目录

task copyToLib(type: Copy) {
    into "$buildDir/libs/lib"
    from configurations.runtime
}

导出后又改为compileClasspath

在运行的时候用-Djava.ext.dirs=指定依赖库的路径。

java   -Djava.ext.dirs=./lib/ -jar bootrun.jar

注意:到导出的jar库中会有多个日志库冲突,报错:Class path contains multiple SLF4J bindings. 按报错提示直接删除这几个jar就可以解决。

转载于:https://my.oschina.net/formatkm/blog/1822900

你可能感兴趣的:(java,开发工具,python)