最近公司項(xiàng)目打算做組件化,第一步需要把基礎(chǔ)組件給整理一下,這篇文章就是有關(guān)開發(fā)過程中遇到的問題以及解決方法言秸。
網(wǎng)絡(luò)上有關(guān)maven的搭建有很多什往,這里就不再贅述扳缕,我是用的nexus搭建的。
問題:
1:快照倉庫
快照版本只需要在version后面加-SNAPSHOT就好,as中引入時(shí)需要app的build.gradle配置
configurations.all {
????resolutionStrategy.cacheChangingModulesFor1,'minutes'
}
該配置的作用是每次gradle構(gòu)建都去檢查快照版本躯舔。因?yàn)間radle的緩存周期是24小時(shí)驴剔,所以要加此配置
2:項(xiàng)目中多依賴module的打包處理
問題描述
1)app組件中是測(cè)試代碼,不需要打包到aar中
2)modules中是空的粥庄,依賴common丧失、dtk、network三個(gè)依賴
項(xiàng)目要求生成的基礎(chǔ)組件aar包含common惜互、dtk布讹、network,但不包括app的代碼
解決方法
1):創(chuàng)建打包上傳的腳本maven-push.gradle训堆。此腳本要在每個(gè)module中都添加描验,并且需要加入到對(duì)應(yīng)build.gradle,引入坑鱼。這樣做的原因是每個(gè)module都需要單獨(dú)打包上傳膘流,這點(diǎn)很重要,當(dāng)時(shí)不知道鲁沥,入坑很深呼股。這樣我們只需要執(zhí)行modules的gradle->upload->uploadArchives任務(wù)就可以自動(dòng)依次打包所有依賴module了,打包順序與上述項(xiàng)目結(jié)構(gòu)正好相反画恰。
2):在項(xiàng)目的gradle.properties文件中添加公共參數(shù)配置
3):每個(gè)module還要單獨(dú)創(chuàng)建gradle.properties文件彭谁,需要配置ARTICACT_ID(項(xiàng)目名),其值一定要和當(dāng)前module名字一樣允扇,因?yàn)橐蕾囁腶ar對(duì)應(yīng)的pom.xml中對(duì)其描述為module名字马靠,這個(gè)可以自己去驗(yàn)證
總結(jié)
以上是我在做組件化基礎(chǔ)組件時(shí)遇到的問題,其他還有像倉庫組的應(yīng)用蔼两、快照倉庫的task的配置網(wǎng)上很多甩鳄,也是有用的。但以上兩個(gè)問題是網(wǎng)上很少提及的额划,是自己?jiǎn)柵笥押妥约好鞒鰜淼拿羁校M麑?duì)大家有幫助。
項(xiàng)目demo鏈接地址:demo