Почему для одной и той же зависимости нужно указывать «время выполнения» и «компиляция»? - PullRequest
13 голосов
/ 14 января 2011

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

Согласно документации Gradle, конфигурация времени выполнения расширяет конфигурацию компиляции, поэтому, безусловно, добавление зависимости с помощью runtime подразумевает неявную compile зависимость?

По крайней мере, это было мое предположение, но оно не работает. Когда в зависимости от артефакта используется runtime, мой проект больше не компилируется. Я буквально должен:

compile 'oauth.signpost:signpost-core:1.2.1.2'
runtime 'oauth.signpost:signpost-core:1.2.1.2'

для приложения для компиляции и см. Классы Signpost во время выполнения.

Я что-то упустил? Это просто не выглядит правильно ...

1 Ответ

21 голосов
/ 14 января 2011

Почти верно. Действительно, конфигурация времени выполнения расширяет конфигурацию компиляции ( docs ). Это означает, что любая зависимость, добавленная к конфигурации compile , доступна в конфигурации runtime ( docs ).

compile 'oauth.signpost:signpost-core:1.2.1.2' будет достаточно, чтобы получить этот артефакт как во время выполнения, так и при компиляции.

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