有些情形需要将项目依赖的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