Как написать зависимость Gradle в виде списка картAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как написать зависимость Gradle в виде списка карт

Сообщение Anonymous »

Я изучаю лабораторию кода сопрограмм Google и заметил, что они делают свои зависимости иначе, чем я видел раньше. Он похож на подход TOML в том смысле, что его версии и библиотеки разделены. Файлы, зависящие от сборки, — это project и start. Проект определяет библиотеки и версии и запускает build.gradle только с «библиотекой реализации». К сожалению, в коде есть проблема: Gradle предупреждает, что он «нераспознан». Он работает нормально, но я ненавижу предупреждения, которые могут стать ошибками.
Мне не нравится подход TOML по нескольким причинам: он не допускает комментариев, и его файлы карт должны быть в одной строке, которая обычно довольно длинная, и это делает просмотр взаимосвязей между библиотеками более непрозрачным.
Статья Баелдунга о gradle подводит меня к этому частично. Пример такой:

Код: Выделить всё

dependencies {
implementation([
[ group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-core",
version: "coroutines_android_version"],
[ group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-android",
version: "coroutines_android_version"]
])
...
Это работает нормально, и gradle доволен, но я хотел бы пойти еще дальше и определить зависимости в проекте build.gradle и использовать их в build.gradle приложения - что-то вроде:

Код: Выделить всё

// project build.gradle
buildscript {
ext {
coroutines_android_version = '1.9.0'

libs = [[ group: "org.jetbrains.kotlinx",
name: "kotlinx-coroutines-core",
version: "coroutines_android_version"],
[ group: "org.jetbrains.kotlinx",
name: "kotlinx-coroutines-android",
version: "coroutines_android_version"]
]
...

// app build.gradle
dependencies {
// implementation libraries
implementation(libs)
...
Это вроде как работает: проект build.gradle компилируется, а приложение build.gradle распознает, что «libs» — это список массивов, но gradle говорит, что libs — это «нотация нераспознанных зависимостей». " Я безуспешно пытался сохранить объявление списка в том же файле, что и зависимость, и различные версии «реализации (libs)».
В чем разница между
  • объявление списка массивов как списка массивов и использование «реализации (список)»
  • определение списка массива зависимостей в «реализации([[...],[...]])»


Подробнее здесь: https://stackoverflow.com/questions/790 ... at-of-maps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»