2016-06-08 88 views
2

我现在有这已在一定的build.gradle依赖附加Android的工作室 - 依赖下,如果条件 - 标志

dependencies { 
    compile project: 'com.name.libOne', name: 'libOne' 
    compile group: 'com.name.libTwo', name: 'libTwo' 
    //a few more dependencies 
    } 

现在我正在寻找一种方法,把一些依赖某种条件 所以在并不是每次构建应用程序时都会有这些依赖关系。

像这样:

dependencies { 
    if (one) { 
     compile project: 'com.name.libOne', name: 'libOne' 
    } 
    compile group: 'com.name.libTwo', name: 'libTwo' 
    //a few more dependencies 
} 

反正有做到这一点?所以我可以将标志发送到构建命令 gradlew.bat assembleDebug并且标志将被这些条件读取?

回答

0

您可以尝试将特定的依赖关系移动到separete文件中,并有条件地应用它们。例如,让我们假设,你创建一个libOneDependency.gradle文件在同一目录作为当前构建脚本,它包含:

dependencies { 
    compile project: 'com.name.libOne', name: 'libOne' 
} 

然后应用到你的主构建脚本,走出dependencies封闭的,如下

if (project.hasProperty('nameOfYourFlag')) 
{ 
    apply from: 'libOneDependency.gradle' 
} 

所以,现在你必须提供你的标志,以构建为-PnameOfYourFlag

+0

我在哪里可以申请一个标志,构建? – Mumfordwiz

+0

然后你运行你的构建:'gradlew.bat assembleDebug -PnameOfYourFlag' – Stanislav

+0

它的工作原理。现在唯一的问题是,我不想使用某些部件,我收到编译错误。你能想到任何解决方案吗? – Mumfordwiz