gpt4 book ai didi

android - 有条件地在 gradle build 中包含项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:39 25 4
gpt4 key购买 nike

场景:我们有一个 Android 应用程序,其中包含一些不同的可选组件,我们希望能够根据客户需求和许可来包含/排除这些组件。是否可以包含基于构建参数的特定项目而不创建所有排列作为构建风格

./gradlew assembleRelease -PincludeFeatureA=true -PincludeFeatureB=false

我想我可以在依赖项中做这样的事情:

dependencies {
if(includeFeatureA){
compile project(':featureAEnabled')
} else {
compile project(':featureADisabled')
}
}

但这似乎行不通。

更新:考虑到可切换功能的数量,为每个排列使用显式构建变体是很麻烦的。

例如,给定 3 个可切换的功能,我不想构建这样的风格:

Feature1
Feature1-Feature2
Feature1-Feature3
Feature1-Feature2-Feature3
Feature2
Feature2-Feature3
...

最佳答案

我的方案的解决方案是将 if 语句移出依赖项:

假设命令行:

gradlew assembleRelease -PincludeFeatureA

在项目build.gradle的开头,我包含了这个:

def featureA_Proj=':featureA_NotIncluded'

然后我有一个这样的任务:

task customizeFeatureA(){
if(project.hasProperty('includeFeatureA')){
println 'Including Feature A'
featureA_Proj=':featureA'
}
}

最后,在依赖项下,我只包含:

dependencies{
include(featureA_Proj)
}

关于android - 有条件地在 gradle build 中包含项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com