android - 根据Android内置类型运行特定的Gradle任务

标签 android gradle

我正在尝试根据构建类型运行特定的任务/操作-调试或发布。

android {
    applicationVariants.all { variant ->
        println "buildType.name is $buildType.name"
    }
}

但是无论我运行assembleDebug还是assembleRelease,我的代码都会同时针对两种构建类型执行:
10:56:20 PM: Executing external task 'assembleDebug'...
Configuration on demand is an incubating feature.
buildType.name is debug
buildType.name is release
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:curl:compileLint
:curl:copyReleaseLint UP-TO-DATE
:curl:mergeReleaseProguardFiles UP-TO-DATE
:curl:preBuild UP-TO-DATE
:curl:preReleaseBuild UP-TO-DATE
:curl:checkReleaseManifest
:curl:prepareReleaseDependencies
:curl:compileReleaseAidl UP-TO-DATE
:curl:compileReleaseRenderscript UP-TO-DATE
:curl:generateReleaseBuildConfig UP-TO-DATE
:curl:generateReleaseAssets UP-TO-DATE
:curl:mergeReleaseAssets UP-TO-DATE
:curl:generateReleaseResValues UP-TO-DATE
:curl:generateReleaseResources UP-TO-DATE
:curl:packageReleaseResources UP-TO-DATE
:curl:processReleaseManifest UP-TO-DATE
:curl:processReleaseResources UP-TO-DATE
:curl:generateReleaseSources UP-TO-DATE
:curl:processReleaseJavaRes UP-TO-DATE
:curl:compileReleaseJavaWithJavac UP-TO-DATE
:curl:packageReleaseJar UP-TO-DATE
:curl:compileReleaseNdk UP-TO-DATE
:curl:packageReleaseJniLibs UP-TO-DATE
:curl:packageReleaseLocalJar UP-TO-DATE
:curl:packageReleaseRenderscript UP-TO-DATE
:curl:bundleRelease UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE
:app:prepareComAndroidSupportCardviewV72301Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2301Library UP-TO-DATE
:app:prepareComAndroidSupportMultidex101Library UP-TO-DATE
:app:prepareComAndroidSupportPaletteV72301Library UP-TO-DATE
:app:prepareComAndroidSupportPercent2301Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72301Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE
:app:prepareComAppboyAndroidSdkUi182Library UP-TO-DATE
:app:prepareComBraintreepaymentsApiBraintree164Library UP-TO-DATE
:app:prepareComBraintreepaymentsCardForm201Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidAnswers131Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidBeta113Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlytics251Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlyticsCore234Library UP-TO-DATE
:app:prepareComEdmodoCropper101Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAnalytics780Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBase780Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesLocation780Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesMaps780Library UP-TO-DATE
:app:prepareComJakewhartonTimberTimber410Library UP-TO-DATE
:app:prepareComRaizlabsAndroidDBFlow221Library UP-TO-DATE
:app:prepareIoBranchSdkAndroidLibrary1811Library UP-TO-DATE
:app:prepareIoFabricSdkAndroidFabric135Library UP-TO-DATE
:app:prepareParaboCurlUnspecifiedLibrary UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:fabricGenerateResourcesDebug
:app:jrebelPinDebugResids
:app:processDebugResources
:app:generateDebugSources
:app:processDebugJavaRes UP-TO-DATE
:curl:copyDebugLint UP-TO-DATE
:curl:mergeDebugProguardFiles UP-TO-DATE
:curl:preDebugBuild UP-TO-DATE
:curl:checkDebugManifest
:curl:prepareDebugDependencies
:curl:compileDebugAidl UP-TO-DATE
:curl:compileDebugRenderscript UP-TO-DATE
:curl:generateDebugBuildConfig UP-TO-DATE
:curl:generateDebugAssets UP-TO-DATE
:curl:mergeDebugAssets UP-TO-DATE
:curl:generateDebugResValues UP-TO-DATE
:curl:generateDebugResources UP-TO-DATE
:curl:packageDebugResources UP-TO-DATE
:curl:processDebugManifest UP-TO-DATE
:curl:processDebugResources UP-TO-DATE
:curl:generateDebugSources UP-TO-DATE
:curl:processDebugJavaRes UP-TO-DATE
:curl:compileDebugJavaWithJavac UP-TO-DATE
:curl:packageDebugJar UP-TO-DATE
:curl:compileDebugNdk UP-TO-DATE
:curl:packageDebugJniLibs UP-TO-DATE
:curl:packageDebugLocalJar UP-TO-DATE
:curl:packageDebugRenderscript UP-TO-DATE
:curl:bundleDebug UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:generateDebugJrebelLayout
:app:collectDebugMultiDexComponents UP-TO-DATE
:app:packageAllDebugClassesForMultiDex UP-TO-DATE
:app:shrinkDebugMultiDexComponents UP-TO-DATE
:app:createDebugMainDexClassList UP-TO-DATE
:app:dexDebug UP-TO-DATE
:app:jrebelPostProcessDebugResids
:app:validateDebugSigning
:app:packageDebug
:app:zipalignDebug
:app:assembleDebug
:curl:compileDebugSources UP-TO-DATE
:curl:assembleDebug UP-TO-DATE

BUILD SUCCESSFUL

Total time: 10.657 secs
10:56:31 PM: External task execution finished 'assembleDebug'.

为什么会这样呢?

检测当前构建类型的正确方法是什么?

最佳答案

您可以仅使构建依赖于不同构建的任务

buildTypes {
    release {
        build.dependsOn 'mySweetReleaseTask'
    }
    debug {
        build.dependsOn 'mySweetDebugTask'
    }
}

要么
buildTypes {
    release {
        project.getTasks().getByName('build').dependsOn('mySweetReleaseTask')
    }
    debug {
        project.getTasks().getByName('build').dependsOn('mySweetDebugTask')
    }
}

如果您希望任务在测试期间的特定时间运行,则可以将'build'替换为'check'。在实际开始构建之前的配置阶段(执行阶段)评估此配置块。

关于android - 根据Android内置类型运行特定的Gradle任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790257/

相关文章:

android - 无法缩放或翻转 surfaceview 矩阵

java - Gradle Failiure:无法通过 '13.0.1'确定Java版本

java - 为什么找不到spring Boot {}?

WLP (WebSphere Liberty) 上的 Spring Boot 部署抛出 CWWKC0044W 错误

android - 找不到依赖模块中的 Activity 文件

angular - 从IntelliJ运行Angular项目时看不到任何更改(html,css)

android - 如何在android中压缩和存储图库中的图像到应用程序缓存

Beta 和 Alpha channel 中的 Android AdMob 真实广告单元 ID

android - 图标/文本按钮的网格布局

java - 从包中提取数据