Почему я должен указать как «время выполнения», так и «компиляция» для одной и той же зависимости?

StackOverflow https://stackoverflow.com/questions/4693490

Вопрос

Я зависит от нескольких артефактов, которые мне нужно для составления, так и запуска моего приложения.

Согласно 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' Будет достаточно, чтобы получить этот артефакт в обоих, времени выполнения и компиляции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top