特别说明
当前博客平台账号已废弃,如果有使用细节问题请前往我新博客平台进行讨论交流。
个人博客平台 HuRuWo的技术小站
文章首发于个人博客HuRuWo的技术小站,如果本文非vip用户无法完全浏览或者图片无法打开,可前往个人博客文章地址查看文章并留言讨论。
个人博客文章地址全面组件化---DDComponentForAndroid分析(2)
更多技术文章访问本人博客HuRuWo的技术小站,包括 Electron从零开发 Android 逆向 app 微信数据抓取 抖音数据抓取 闲鱼数据抓取 小红书数据抓取 其他软件爬虫 等技术文章
前言
继续上一篇,搭建组件化工程。
1.全面组件化---DDComponentForAndroid分析(1)
2.全面组件化---DDComponentForAndroid分析(2)
3.全面组件化---DDComponentForAndroid分析(3)
集成调试
其实上一篇在UI 跳转里面已经讲解了app主项目拉起one组件和oneone组件。
debugComponent=onecomponent,oneonecomponent
但是这里要讲解另一种引入方式:引入组件的aar文件
为什么要依赖aar而不直接依赖工程
1.编译速度加快,因为aar是预编译好的文件
2.实现合作的时候,代码直接互不干扰。a能使用b的组件。但a无法改动b的代码,实现彻底分工。
如何引用aar
- 把组件打包成aar并发布。
这个部分插件com.dd.comgradle
已经集成了,只需要
如果组件开发并测试完成,需要发布一个release版本的aar文件到中央仓库,只需要把isRunAlone修改为false,然后运行module:assembleRelease命令就可以了。
- isRunAlone =false 让其作为library打包
- 点击
module:assembleRelease
发布在本地文件里面
2.引用aar
- 添加仓库地址: 这里是本地文件系统
flatDir {
dirs '../componentrelease' //this way we can find the .aar file in folder
}
- 添加 debugComponent 引用
修改
debugComponent=onecomponent,oneonecomponent
为
debugComponent=onecomponent,com.example.oneonecomponent:oneonecomponent
也就是:包名+组件名代表引入aar
到这里,大概整个框架已经搭好了。如果要在实际生产中使用,还要针对自己的项目进行变化。
一些自定义的变化
发布aar到自己的maven仓库
相信你已经搭建自己的maven仓库了-->搭建本地的nexus-maven-仓库
根目录导入
nexus_maven.gradle
,里面是一些固定的东西gradle.properties
添加一些东西,包括版本,仓库地址(请先建好仓库)apply from: '../nexus_maven.gradle'
-
打开maven服务器,点击
uploadArchives
-
引用 添加仓库并添加依赖
debugComponent=onecomponent,com.huruwo:oneoneponent:1.0.0
很明显,自定义插件报错(关于该问题在github上的提问)。说明插件对于
com.huruwo:oneoneponent:1.0.0
的处理方式不对,所以应该修改源码:
额外的东西
不知道什么原因AS老是出现clean错误:
Unable to delete file:
解决办法:task ':app:clean'. > Unable to delete file:
先安装lockhunter.exe,用来解除java的占用
在你的主app的Module下的build.gradle下追加下面一段
task clean(type: Exec) {
//程序路径
ext.lockhunter = '\"C:\\Program Files\\LockHunter\\LockHunter.exe\"'
def buildDir = file(new File("build"))
commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}
总结
花两篇文章终于介绍完了整个框架,但是整个框架并没有了解完。因为最重要的build-gradle插件没有分析。
案例补上项目地址: