android - gradle multiproject包含和排除库

时间:2013-04-25 08:26:53

标签: android gradle multiple-projects

我正在尝试使用Gradle构建一个Android项目。

它具有以下结构:

ProjectA----- MainProject,   
LibA     ---- Library project,   
LibB     ---- Library project,   
LibC     ---- Library project,   
LibD     ---- Library project,  
etc...

基于situtation,我需要包含库,有时需要包括所有库,1个库,2个或3个等基于flavor。 在设置文件中,我包含了所有项目。

有人知道如何根据口味包含/排除库吗?

我尝试过依赖阻止,我收到错误。
以下是示例代码

dependencies {
if (task.name.matches('compileFlovor1'){
  exclude module: 'LibD'
   }
}

错误是:找不到参数[{module = LibD}]的方法exclude()。

请指导我解决此问题

1 个答案:

答案 0 :(得分:6)

添加特定于风味的依赖项,您必须配置相应的配置。 让我们说你必须尝试“免费”和“付费”

android {
    productFlavors {
        free
        paid
    }
}

然后您可以通过以下方式在依赖关系块中设置特定于flavor的依赖项:

dependencies {
    compile project(':library1')  //library1 used in free and paid flavour
    freeCompile project(':library2')
    paidCompile project(':library3')    
    paidCompile project(':library4')    
    paidCompile project(':library5')     
}

希望有所帮助,

欢呼声, 勒