使用gradle打包时将依赖也合并入jar包

时间:2020-12-15 09:15:15

有些情形需要将项目依赖的jar包也合并入自己项目的jar包内,出来的这个jar我们称它为fat-jar。我所使用的方法需要用到shadow插件:

下面例子展示将mybatis打入我的jar包,并将mybatis的包名由org.apache.ibatis 改成 my.org.apache.ibatis。

这个示例并不是一个完整的build.gradle文件。里面除了relocate这行其余均为必须。relocate:在合并包的时候修改依赖的包名。如果不是必要情况,可以忽略relocate这行。

 

plugins {
    id 'com.github.johnrengelman.shadow' version '2.0.4'
}

apply plugin: 'com.github.johnrengelman.shadow'


dependencies {
    compile group: 'org.mybatis', name: 'mybatis', version: '3.4.5'
}

shadowJar {
	classifier = ""
	relocate 'org.apache.ibatis', 'my.org.apache.ibatis'
	dependencies {
		include(dependency("org.mybatis:mybatis:3.4.5:withDependencies"))
	}
}

 

最后,运行eclipse的gradleTasks窗口中的shadowJar命令。

或者执行gradlew shadowJar