it-swarm.com.ru

Android Gradle - Что использовать вместо compileOnly?

Согласно следующей записи SO, compile недавно стала implementation: В чем разница между реализацией и компиляцией в gradle

У меня вопрос, что я должен использовать вместо compileOnly? Пост выше не относится к этой конфигурации gradle. Я знаю, что я все еще могу использовать compileOnly, но каков рекомендуемый конфиг, который не будет устаревшим в ближайшее время?

Казалось, что все конфиги, которые содержат ..compile.., будут заменены на ..implementation... Я пробовал implementationOnly, но не принимал Android Studio.

21
Ugurcan Yildirim

compileOnlyявляется заменой - эквивалентная конфигурация, которая устарела - provided. Смотрите документацию .

34
CommonsWare

Зависимости вашего проекта должны быть изменены с
dependencies { provided 'com.someDependency:api:78'}to
dependencies { compileOnly 'com.someDependency:api:78'}

0
anotherNoob

В одном случае вы принимаете IDE автоматическое предложение добавить проект в файл Gradle, при этом будет добавлено «compile project (path: 'xxx')». Исправьте это, и все будет в порядке.

0
Brian Chu

Плагин Android для Gradle 3.0.0

раньше - Устаревшая конфигурация - provided 
after - Новая конфигурация - compileOnly

Gradle добавляет зависимость только к пути к классам компиляции (он не добавляется в выходные данные сборки). Это полезно, когда вы создаете модуль библиотеки Android и вам нужна зависимость во время компиляции, но это необязательно для представления во время выполнения. То есть, если вы используете эту конфигурацию, то ваш библиотечный модуль должен включать условие времени выполнения, чтобы проверить, доступна ли зависимость, и затем корректно изменить его поведение, чтобы он мог продолжать функционировать, если он не предоставлен. Это помогает уменьшить размер окончательного APK, не добавляя переходные зависимости, которые не являются критическими. Эта конфигурация ведет себя так же, как предусмотрено (что в настоящее время не рекомендуется).

0
yoAlex5