Android 将 module 导出为 jar 最新版


对本知识点有任何问题,可加我的个人微信:kymjs666

Android Studio 导出 jar 包

今天碰上公司 Nexus 网络服务挂了,结果 aar 没办法 upload 。而偏偏遇上工程遗留问题,不支持 aar 直接依赖,只能想办法导出 jar 包依赖。所幸,操作还比较简单,但是这种方法只适合于每月资源引用的代码,而且还不支持传递依赖。

首先得要在 module 的 build.gradle 文件最后面加入任务代码:

def SDK_VERSION = "0.0.6-beta3"

task makeJar(type: Copy) {
    delete "build/libs/${project.name}-${SDK_VERSION}.jar"
    from('build/intermediates/intermediate-jars/release/')
    new File("build/outputs/jar/").mkdirs()
    into('build/outputs/jar/')
    include('classes.jar')
    rename ('classes.jar', "${project.name}-${SDK_VERSION}.jar")
}
makeJar.dependsOn(build)

其中SDK_VERSION是你当前 jar 包的版本,比如我定义的是def SDK_VERSION = "0.0.6-beta3"
还有一个需要注意的是这里:new File("build/outputs/jar/").mkdirs() 这个是 jar 包的输出路径,我直接写到了 outputs 目录里面,如果你需要自定义,比方说直接导出到应用的 libs 里面,需要自己修改路径。
最后,还有,此方法不支持传递依赖,你 module 里面的依赖都得要再在 app 里面依赖一遍。