Управление зависимостями Gradle с учетом вариантов для тестовых зависимостей

У меня есть многомодульный проект Android, в котором есть модуль, который всегда включается для тестирования только через testImplementation project(path: 'libtestsupport'). Автоматическое переключение вариантов, похоже, не работает, если я не включу этот модуль для нетестовых сборок через implementation project(path: 'libtestsupport'), чего я не хочу делать, потому что он когда-либо используется только тестами. Это приводит к тому, что вариант сборки для этого модуля библиотеки не соответствует другим модулям:

Несоответствие варианта сборки

Есть ли способ заставить эту зависимость библиотеки автоматически переключать варианты сборки, как и другие зависимости в приложении?


person user3265561    schedule 04.11.2019    source источник


Ответы (1)


как решить эту проблему: устраните ошибки сборки, связанные с сопоставлением зависимостей

Причина ошибки сборки:

Ваше приложение включает тип сборки, которого нет в зависимости от библиотеки.

Например, ваше приложение включает в себя тип промежуточной сборки, но зависимость включает только тип сборки отладки и выпуска.

Обратите внимание, что нет проблем, когда зависимость библиотеки включает тип сборки, которого нет в вашем приложении. Это потому, что плагин просто никогда не запрашивает этот тип сборки из зависимости.

Разрешение

Используйте MatchingFallbacks, чтобы указать альтернативные совпадения для данного типа сборки, как показано ниже:

// In the app's build.gradle file.
android {
    buildTypes {
        debug {}
        release {}
        staging {
            // Specifies a sorted list of fallback build types that the
            // plugin should try to use when a dependency does not include a
            // "staging" build type. You may specify as many fallbacks as you
            // like, and the plugin selects the first build type that's
            // available in the dependency.
            matchingFallbacks = ['debug', 'qa', 'release']
        }
    }
}
person R.Desai    schedule 14.12.2019