Android Gradle 4.0 зависимость от компиляции устарела - как работает видимость новой конфигурации API?
Если мы посмотрим на инструменты сборки gradle, то заметим, что зависимость конфигурации компиляции устарела в пользу API и реализации. Смотрите здесь
поэтому у меня был вопрос о видимости зависимости с помощью API. Представьте, что у нас есть следующий набор в модуле под названием app:
dependencies {
api 'commons-httpclient:commons-httpclient:3.1'
implementation 'org.apache.commons:commons-lang3:3.5'
}
Итак, из того, что я собрал, org.apache.commons:commons-lang3:3.5 будет доступен только в самом модуле. но зависимость commons-httpclient:commons-httpclient:3.1 будет недоступна вне модуля, что это на самом деле означает? означает ли это, что если я превратил свой модуль приложения в библиотеку, зависимость будет доступна любому, кто использует библиотеку, (разве не всегда так было?
вот что говорят андроиды о конфигурации API:
api compile Зависимость доступна для модуля во время компиляции, а также для потребителя модуля во время компиляции и во время выполнения. Эта конфигурация ведет себя так же, как компиляция (которая теперь устарела), и вы обычно должны использовать ее только в библиотечных модулях. Модули приложения должны использовать реализацию, если вы не хотите предоставлять свой API-интерфейс отдельному тестовому модулю. compileOnly предоставляется