Почему я должен указать как "runtime", так и "compile" для той же зависимости?
Я в зависимости от нескольких артефактов, которые мне нужны для компиляции и запуска моего приложения.
В соответствии с документами Gradle конфигурация среды выполнения расширяет конфигурацию компиляции, поэтому, уверенно добавляя зависимость с помощью runtime
, подразумевается неявная зависимость compile
?
По крайней мере, это было мое предположение, но это не сработало. Когда в зависимости от артефакта используется runtime
, мой проект больше не компилируется. Я буквально должен:
compile 'oauth.signpost:signpost-core:1.2.1.2'
runtime 'oauth.signpost:signpost-core:1.2.1.2'
для приложения как для компиляции, так и для просмотра классов Signpost во время выполнения.
Я что-то упустил? Это просто не выглядит правильно...
Ответы
Ответ 1
Почти правильно. Конфигурация времени выполнения, действительно, расширяет конфигурацию компиляции (docs). Это означает, что любая зависимость, добавленная к конфигурации компиляции, доступна в конфигурации времени выполнения (docs).
compile 'oauth.signpost:signpost-core:1.2.1.2'
будет достаточно, чтобы получить этот артефакт как в режиме исполнения, так и во время компиляции.