android 库依赖管理之一module依赖

module依赖最大的问题在于路径管理,每个团队成员check到本地时的路径不一样,这样每个人的配置就不一样,每次更新settings.gradle时都编译都出现找不到module的情况。 现在采用统一定义路径,这样更新代码后只需要修改一个地方就行。

1.在gradle.properties中定义module属性变量

#主干代码引用module的位置是../../library/
#分支代码引用module的位置../../../library/
LIBRARY_PATH=../../library/
# 1表示引用module代码 0表示引用aar文件
DEPENDENCIES_MODULE=0

2.settings.gradle里的library路径采用变量引用的形式。

 方案1:路劲定义在gradle.properties中,settings.gradle中引用
def libraryPath = LIBRARY_PATH
project(':nuwa').projectDir = new File(libraryPath + 'Nuwa/trunk/nuwa')

     方案2:直接在settings.gradle中定义变量
      def libraryPath = '../../../library/'
       project(':nuwa').projectDir = new File(libraryPath + 'Nuwa/trunk/nuwa')

      方案3:settings.gradle 中动态判断
     def isTrunk = rootProject.projectDir.absolutePath.indexOf("mallapp/trunk")
     def libraryPath = isTrunk > 0 ? LIBRARY_TRUNK_PATH : LIBRARY_BRANCHE_PATH
      project(':nuwa').projectDir = new File(libraryPath + 'Nuwa/trunk/nuwa')

3.aar和module动态切换,脚本参考【android 库依赖管理之一aar依赖】中的buildsystem/util.gradle

    //是否依赖形式是module
    boolean depModule = rootProject.ext.isDepModule();
//    compile project(path: ':nuwa')
    if(depModule) {
        compile project(':applogin')
        compile project(':appcashier')
        compile project(':kidim')
        compile project(':kidgroupchat')
        compile project(':kidpush')
    }
    //动态添加aar aars/default目录下的aar是一直存在的  aars目录下的是替换module用的
    rootProject.ext.addAARLibs(project, depModule);

转载于:https://my.oschina.net/bruces/blog/1438888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值