最近公司项目打算做组件化,第一步需要把基础组件给整理一下,这篇文章就是有关开发过程中遇到的问题以及解决方法。
网络上有关maven的搭建有很多,这里就不再赘述,我是用的nexus搭建的。
问题:
1:快照仓库
快照版本只需要在version后面加-SNAPSHOT就好,as中引入时需要app的build.gradle配置
configurations.all {
resolutionStrategy.cacheChangingModulesFor1,'minutes'
}
该配置的作用是每次gradle构建都去检查快照版本。因为gradle的缓存周期是24小时,所以要加此配置
2:项目中多依赖module的打包处理
问题描述
1)app组件中是测试代码,不需要打包到aar中
2)modules中是空的,依赖common、dtk、network三个依赖
项目要求生成的基础组件aar包含common、dtk、network,但不包括app的代码
解决方法
1):创建打包上传的脚本maven-push.gradle。此脚本要在每个module中都添加,并且需要加入到对应build.gradle,引入。这样做的原因是每个module都需要单独打包上传,这点很重要,当时不知道,入坑很深。这样我们只需要执行modules的gradle->upload->uploadArchives任务就可以自动依次打包所有依赖module了,打包顺序与上述项目结构正好相反。
2):在项目的gradle.properties文件中添加公共参数配置
3):每个module还要单独创建gradle.properties文件,需要配置ARTICACT_ID(项目名),其值一定要和当前module名字一样,因为依赖它的aar对应的pom.xml中对其描述为module名字,这个可以自己去验证
总结
以上是我在做组件化基础组件时遇到的问题,其他还有像仓库组的应用、快照仓库的task的配置网上很多,也是有用的。但以上两个问题是网上很少提及的,是自己问朋友和自己摸索出来的,希望对大家有帮助。
项目demo链接地址:demo
网友评论