Gradle переходные зависимости - PullRequest
0 голосов
/ 06 марта 2019

У меня есть проект "lib" с объявленной зависимостью от сторонней библиотеки (скажем, redis).

dependencies{
        implementation group: 'redis.clients', name: 'jedis', version: '2.9.0'
    }

У меня есть другой проект, «application», который очень похожим образом объявляет зависимость от проекта «lib».

Проблема: если я не добавляю зависимость redis в проект «application», она завершится с ошибкой во время выполнения из-за отсутствия зависимости redis (несмотря на то, что она сама не использует непосредственное использование redis).

Я хочу объявить зависимость «redis» внутри проекта «lib» таким образом, чтобы «lib» уже был «связан» с «redis» внутри, поэтому каждый, кто использует «lib», должен будет объявить только «lib» зависимость.

Как это сделать?

1 Ответ

0 голосов
/ 07 марта 2019

Если вы примените плагины java или java-library, вам не нужно ничего делать.

Зависимость, добавленная к области действия implementation в Gradle, видна потребителям этого проекта по их времени выполнения classpath. Однако не виден для пути к классам компиляции.

Чтобы лучше понять, что происходит, вы можете проверить разные пути к классам, запустив ./gradlew <project>:dependencies --configuration runtimeClasspath для обоих проектов и посмотреть, что получится, конечно же заменив <project> именем проекта или оставив пустым для корневого проекта.

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