Gradle Multi Module Dependency - совместное использование API и testImplementation - PullRequest
0 голосов
/ 09 января 2020

У меня есть модуль, который содержит только тестовые зависимости, и я выставляю эти зависимости как api

// testshared/build.gradle

api libraries.lib1
api libraries.lib2

, и я использую его в moduleA с testImplementation project(':testshared')

Is это эквивалент создания пользовательской конфигурации, которая выходит из testImplementation и использует ее следующим образом:

// testshared/build.gradle

configurations {
    myTestDependencies.extendsFrom testImplementation
}

dependencies {

    testImplementation libraries.lib1
    testImplementation libraries.lib2

    // .. other testImplementation dependencies here
}
// moduleA/build.gradle

testImplementation project(path: ':testshared', configuration: 'myTestDependencies')

, как показано здесь { ссылка }?

1 Ответ

0 голосов
/ 09 января 2020

В случае testImplementation достаточно в качестве зависимостей модуля приложения. Иначе api следует использовать (или даже использовать) только при ссылке на идентичные зависимости в нескольких модулях. testImplementation ведет себя не так, как обычные зависимости модуля, потому что они для целого другого (тестового) приложения. Без прикладного модуля интеграционное тестирование невозможно, поскольку для него требуется 2 приложения. Библиотеки сами по себе могут быть проверены только модулем.

Если вы хотите иметь дополнительный файл, просто apply from: "testshared/build.gradle".

debugImplementation также иногда требуется, но testApi будет только причина:

Configuration 'testApi' is obsolete and has been replaced with 'testImplementation'.

Это всегда была бесполезная конфигурация, поскольку на каждый модуль приложения приходится только 1 тестовое приложение. Использование testImplementation вместе с api возможно только в модуле приложения.

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