Как переопределить конфигурацию подпроекта gradle в модуле? - PullRequest
0 голосов
/ 15 июня 2019

Мой модульный проект Android использует subprojects в корневом каталоге build.gradle, чтобы минимизировать конфигурацию, необходимую для каждого подмодуля build.gradle.Например, я могу использовать его для добавления нашего пользовательского buildType к каждому модулю

subprojects 
    afterEvaluate { project ->

        if (project.plugins.findPlugin('android') ?: project.plugins.findPlugin('android-library')) {
            android {
                buildTypes {
                    qa {
                        initWith debug
                        matchingFallbacks = ['debug']
                    }
                }
            }
        }
    }
} 

Я предполагал, что если бы я также добавил эту конфигурацию сборки в build.gradle уровня модуля, он бы переопределил конфигурацию, определенную на уровне проекта,Однако, похоже, это не так.

Если я добавлю следующее в свой app / build.gradle, мое приложение получит суффикс 'dev', когда выбран QA buildType.

buildTypes {
        debug {
            applicationIdSuffix = ".dev"
            signingConfig signingConfigs.debug
        }

        qa {
            initWith debug
            applicationIdSuffix = ".qa"
            matchingFallbacks = ['debug']
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

    }

Та же проблема также возникает, когда я пытаюсь использовать buildType, специфичные для buildConfigFields в модулях;они игнорируются.

Как получить, чтобы объявление buildType модуля переопределило то, что определено в родительском проекте?Я прочитал документы Gradle, и в них был предложен синтаксис, такой как android.buildTypes.qa{...}, однако это приводит к ошибке из-за того, что «метод» qa не распознается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...