外部鴻蒙三方庫無法打入Jar包中的解決方案
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
背景:鴻蒙三方庫移植及開發(fā)項(xiàng)目中,在JavaLibrary module中會(huì)引用一些其他開源三方庫如Zxing,Gson等,將JavaLibrary打出jar包的時(shí)候,發(fā)現(xiàn)這些第三方庫根本沒有打到j(luò)ar包里面去,運(yùn)行時(shí)就會(huì)報(bào)某某類缺失,以javapoet普通打包方式為例:
Javalibrary module中雖然引用了javapoet,但是打出jar包后發(fā)現(xiàn)javapoet并未存在于該jar中
打出jar包
查看jar包發(fā)現(xiàn)javapoet并未存在于該jar中
之前臨時(shí)方案是在JavaLibrary module中導(dǎo)入依賴三分庫的源碼,由于由于涉及版本迭代,不好維護(hù),不推薦此方式。
目前正確的解決方法為:使用插件進(jìn)行輔助打包,解決辦法步驟如下:
1. 配置打包插件的集成環(huán)境,引用三方打包插件到j(luò)avalibrary工程的gradle中。
2. 配置打包插件后,在build中會(huì)出現(xiàn)shadowJar的task,雙擊進(jìn)行打包:
3. 打包完成后,將jar引用到應(yīng)用工程中進(jìn)行測(cè)試:
此時(shí)javapoet已被打到j(luò)ar包中。
備注:shadow插件官方開源地址
https://github.com/johnrengelman/shadow
本文作者:Shen Fei 來自鴻蒙三方庫聯(lián)合特戰(zhàn)隊(duì)
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)