Android 打包所有依赖
问题缘由
有些非常老旧的项目构建方式不支持 maven,也就是没办法自动解决依赖 ,这个时候只能把所有相关的 Jar
和 aar
都下载给对方。
问题解决
简单描述
- 先把对方需要集成的
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
包,用压缩软件就能看到里面有所有的 Jar
和 AAR
总结
这个实现本来我是以为要自己写脚本的,忽然想起,JavaWeb 项目的发布其实就是把主工程和依赖一起打包发布出去的,想象 AAR 如果被依赖进去应该也能一起被打包的,测试了一下,果然可以,证明了多长点见识是没毛病的。同时,这里的原理我还不太清除,需要详细研究一下 Gradle 的 Api 看看有没有可以获取到全部依赖的办法