Android Studio - Gradle构建了所有类型的库,而不仅仅是当前库

时间:2016-04-22 00:29:43

标签: android android-studio gradle android-gradle

我的应用包含主模块mobile和库模块core。它们中的每一个都有两种构建风格:flavor1flavor2

图书馆build.gradle:

apply plugin: 'com.android.library'

android {        
    ....
    publishNonDefault true
    productFlavors {
        flavor1 {}
        flavor2 {}
    }
}

项目build.gradle:

apply plugin: 'com.android.application'

android {
    ....
    productFlavors {
        flavor1 {}
        flavor2 {}
    }
}

configurations {
    flavor1DebugCompile
    flavor2DebugCompile
    flavor1ReleaseCompile
    flavor2ReleaseCompile
}

dependencies {
    ....
    flavor1DebugCompile project(path: ':core', configuration: 'flavor1Debug')
    flavor2DebugCompile project(path: ':core', configuration: 'flavor2Debug')
    flavor1ReleaseCompile project(path: ':core', configuration: 'flavor1Release')
    flavor2ReleaseCompile project(path: ':core', configuration: 'flavor2Release')
}

现在一切正常并且编译,但我注意到Gradle构建库的方式有些奇怪:

如果我通过gradlew :core:assembleFlavor1Debug汇编库,它只会编译flavor1的代码(我看到正在执行的任务core:compileFlavor1DebugJavaWithJavac)。

但是当我尝试自己构建项目时(或者只是按下'运行'按钮) - gradlew :mobile:assembleFlavor1Debug我在输出中看到,该库是为两种构建风格构建的,调用{{ 1}}和core:compileFlavor1DebugJavaWithJavac,甚至认为我专门选择仅构建core:compileFlavor2DebugJavaWithJavac

现在,这对我来说真的很奇怪,为什么它只会构建所有口味而不是所需的味道?它是Gradle中的错误还是它处理库的方式?

0 个答案:

没有答案