全面组件化---DDComponentForAndroid分析(2)

前言

继续上一篇,搭建组件化工程。

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

  1. 把组件打包成aar并发布。
    这个部分插件com.dd.comgradle已经集成了,只需要

如果组件开发并测试完成,需要发布一个release版本的aar文件到中央仓库,只需要把isRunAlone修改为false,然后运行module:assembleRelease命令就可以了。

  • isRunAlone =false 让其作为library打包
  • 点击 module:assembleRelease
全面组件化---DDComponentForAndroid分析(2)_第1张图片
QQ截图20171110091644.png

这里尝试发布模块的aar:
QQ截图20171110092216.png

发布在本地文件里面

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

    QQ截图20171110094808.png

全面组件化---DDComponentForAndroid分析(2)_第2张图片
QQ截图20171110095432.png
  • 引用 添加仓库并添加依赖


    全面组件化---DDComponentForAndroid分析(2)_第3张图片
    QQ截图20171110100644.png
debugComponent=onecomponent,com.huruwo:oneoneponent:1.0.0
QQ截图20171110100700.png

很明显,自定义插件报错(关于该问题在github上的提问)。说明插件对于
com.huruwo:oneoneponent:1.0.0的处理方式不对,所以应该修改源码:

全面组件化---DDComponentForAndroid分析(2)_第4张图片
QQ截图20171110151648.png

额外的东西

不知道什么原因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插件没有分析。

案例补上项目地址:

https://github.com/HuRuWo/ZuJianHua

你可能感兴趣的:(全面组件化---DDComponentForAndroid分析(2))