Почему я должен указать как «время выполнения», так и «компиляция» для одной и той же зависимости?
-
11-10-2019 - |
Вопрос
Я зависит от нескольких артефактов, которые мне нужно для составления, так и запуска моего приложения.
Согласно Docs Gradle, конфигурация среды выполнения расширяется конфигурация компиляции, так что, несомненно, добавление зависимости с использованием runtime
подразумевает неявное compile
Зависимость?
По крайней мере, это было моим предположением, но это не работает. Когда в зависимости от артефакта с использованием runtime
, мой проект больше не компилируется. Я буквально должен:
compile 'oauth.signpost:signpost-core:1.2.1.2'
runtime 'oauth.signpost:signpost-core:1.2.1.2'
Для приложения оба компилировать а также Смотрите классы Signpost во время выполнения.
Я что-то упускаю? Это просто не выглядит правильно ...
Решение
Почти правильно. Конфигурация времени выполнения, действительно, расширяется Скомпилируйте конфигурацию (док) Это означает, что любая зависимость, добавленная к компиляция конфигурация доступна в время выполнения конфигурация (док).
compile 'oauth.signpost:signpost-core:1.2.1.2'
Будет достаточно, чтобы получить этот артефакт в обоих, времени выполнения и компиляции.