Выбор ответа Middle Модульность обновлено
api и implementation в Gradle
Вопрос
Чем зависимость implementation отличается от api в Gradle-модуле?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: implementation не передаёт зависимость потребителям, и её изменение их не пересобирает; api передаёт. С implementation библиотека скрыта: потребители модуля её не видят и не перекомпилируются, если она изменилась. api нужен, когда типы зависимости торчат в публичных сигнатурах модуля.
Варианты ответа
implementationне передаёт зависимость потребителям, и её изменение их не пересобирает;apiпередаётправильный ответapiподключает зависимость только в тестах и сэмплах, аimplementationв основном кодеimplementationзапрещает использовать типы библиотеки в исходном коде модуля, к ним доступ остаётся только через рефлексию- Разницы нет: это синонимы,
apiоставлен для совместимости со старым плагиномjava-library
Разбор
С implementation библиотека скрыта: потребители модуля её не видят и не перекомпилируются, если она изменилась. api нужен, когда типы зависимости торчат в публичных сигнатурах модуля. Злоупотребление api разрастает граф перекомпиляции. Тестовые зависимости объявляют через testImplementation.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.