Gradle - разница между реализацией и временем выполнения - PullRequest
0 голосов
/ 02 июля 2018

Прочитав это Документация Gradle Я понимаю разницу между api и implementation. Однако я хотел бы знать, есть ли разница между implementation и устаревшим runtime.

Согласно этой таблице нет различий в поведении, но использование runtime на практике, кажется, "пропускает" путь к классам компиляции, когда я пробовал его, и поэтому классы, которые я пытался скрыть фактически подвергался воздействию модуля-потребителя.

1 Ответ

0 голосов
/ 02 июля 2018

implementation зависимости добавляются в путь к классам компиляции проекта, в котором они объявлены. Это не относится к runtime зависимостям.

Если вы говорите исключительно о том, как зависимости implementation и runtime влияют на потребителей проекта, в примечаниях к выпуску 4.6 утверждается, что зависимости runtime всегда были включены в classpath компиляции, вот почему вы видите утечку.

Если вы опубликовали библиотеку с implementation зависимостями, эти зависимости будут помечены как runtime scope в POM, и я подозреваю, что они также будут включены в путь к классам компиляции проектов-потребителей. Вам необходимо включить функцию IMPROVED_POM_SUPPORT, чтобы изменить это.

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