Android 打包所有依赖

问题缘由

有些非常老旧的项目构建方式不支持 maven,也就是没办法自动解决依赖 ,这个时候只能把所有相关的 Jaraar 都下载给对方。

问题解决

简单描述

  • 先把对方需要集成的 AAR 发布到 Mavan仓库上
  • 创建一个空Java 项目,只是依赖这个包
  • 增加 WAR打包插件,运行 WAR 作业,打包完成

实际过程

如何发布到 Maven 上我就不讲了,反正我是会的。为什么要发布到 maven 上先呢?主要是想要把库相关依赖也上传了,这样就比较容易把所有的包都下下来

空项目脚本代码


plugins {
    id 'war'
}
apply plugin: 'java'

dependencies {
    // 需要加的包
    implementation "com.xxxx.xx:111"
}

sourceCompatibility = "8"
targetCompatibility = "8"

运行

./gradlew :module-name:war

${module-name}/build/libs就能看到打包好的 war 包,用压缩软件就能看到里面有所有的 JarAAR

总结

这个实现本来我是以为要自己写脚本的,忽然想起,JavaWeb 项目的发布其实就是把主工程和依赖一起打包发布出去的,想象 AAR 如果被依赖进去应该也能一起被打包的,测试了一下,果然可以,证明了多长点见识是没毛病的。同时,这里的原理我还不太清除,需要详细研究一下 Gradle 的 Api 看看有没有可以获取到全部依赖的办法