Android gradle:所有buildTypes都在同时执行

时间:2015-11-23 12:03:28

标签: android gradle android-gradle build.gradle

我有一个android gradle项目,我正在尝试配置 buildTypes 。以下是我build.gradle的一部分:

android {

...

    buildTypes {
        debug {
            println("inside debug...")
        }    
        release {
            println("inside release...")
        }
    }

...
}

当我从终端运行 assembleDebug 任务时,我得到输出:

inside debug...
inside release...

为什么发布块会被打印出来?在执行assembleDebug任务时,如何仅打印调试块,在执行assembleRelease任务时仅打印释放块,该怎么办?

我对android和gradle都很新,所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:3)

简单的答案是:他们不是

Gradle(它是一种简化)分为两个阶段:配置执行。在配置阶段,将评估整个脚本 - 这就是您添加的println语句确实在输出中出现的原因。

要验证是否运行了发布和调试任务,请添加以下代码:

assembleDebug << {
   println 'debug run'
}

assembleRelease << {
   println 'release run'
}

使用<<添加一个操作,该操作将在任务运行时执行。操作在执行阶段运行。