因業(yè)務(wù)需求,我們會遇到需要開發(fā)SDK提供給外部使用,有可能是公司內(nèi)部其他部分或者是對外的SDK。一般有兩種方式:aar和maven。
例如module C 為SDK核心代碼,為了隔離module C對外接口,方便混淆,module B 通過api方式依賴module C 的maven,相當(dāng)于包一層殼,只需要對外提供module B 的maven即可。
module C需要對libs目錄下的jar和xxx.aar引用進(jìn)行處理。
1、module C 引用jar可以通過implementation方式,會和module C一起打包進(jìn)maven 生成的aar中。
2、module C 引用xxx.aar則可通過compileOnly方式引用,確保編譯不出錯。如果xxx.aar也通過implementation方式引用,雖然上傳到maven不會出錯,但module C被依賴時,則會出現(xiàn)問題,因為implementation方式引用xxx.aar是不會被打包進(jìn)maven生成的aar。
完成上述操作后,module B 通過 api 的方式依賴 module C對應(yīng)的maven。
最后將module B 生成的maven 和module C 中的xxx.aar一并提供給接入方。接入方可以在libs目錄下添加xxx.aar,然后通過implementation方式引用xxx.aar。