如何使用Gradle中的方法添加依赖项

时间:2019-06-25 03:33:06

标签: android gradle android-gradle build.gradle

我可以使用以下任一方法添加模块依赖项

  • aar 依赖
  • 本地项目模块 现在我可以使用下面的命令完成

    if (foo(":awesomemodule")) {
        implementation 'com.example.app:awesomemodule:1.0'
    
    }
    else {
        implementation project(':awesomemodule')
    }
    

现在,我想针对多个依赖关系重复此代码,并希望为其创建一个方法。

我想要这样的东西

customAddImplementation(':awesomemodule')

ext.customAddImplementation = { moduleName ->
    if (foo(moduleName)) {
        return implmentation('com.example.app' + moduleName + ':1.0')
    } else {
        return project(path: moduleName)
    }
}

但是这种方法不起作用,因为当我使用implementation()添加依赖项时找不到customAddImplementation(':awesomemodule')定义

1 个答案:

答案 0 :(得分:1)

类似的事情应该起作用:

def customModulePath(String moduleName) {
    if (foo(moduleName)) {
        return "com.example.app:$moduleName:1.0")
    } else {
        return project(":$moduleName")
    }
}

dependencies {
    implementation(customModulePath('awesomemodule'))
}

要点:由于该函数不会尝试将自定义模块路径添加到实现依赖关系中,而只是返回其路径,因此您可以使用它来将依赖关系添加到任何其他配置中。