#android #gradle #documentation #android-gradle-7.0
Вопрос:
Просматривая документацию по конфигурации сборки Gradle, я вижу несколько конфликтов с моей сборкой при Android Studio 2020.3.1
использовании Gradle 7.0.3
.
Например, в документации говорится, что allProjects
блок настроек репозиториев, используемых всеми модулями, должен быть добавлен в корень build.gradle
, в то время как на самом деле он позволяет мне настраивать репозитории модулей только в блоке settings.gradle
under dependencyResolutionManagement
.
Другим примером является применение плагинов к модулям приложений, в документации говорится, что первая строка должна быть:
apply plugin: 'com.android.application'
В то время как в моей сборке используется:
plugins {
id 'com.android.application'
}
Я также заметил, что также JitPack использует те же конфигурации, предложенные на этой странице документации, для использования опубликованной библиотеки JitPack в проектах:
Добавьте его в свой корневой build.gradle в конце репозиториев:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Шаг 2. Добавьте зависимость
dependencies {
implementation 'com.github.arcm111.ScaleNumberPicker:final:1.0.1'
}
Итак, мой вопрос в том, устарели ли эти страницы документации, поддерживаются ли Gradle 7
они еще не полностью, или я смотрю на неправильную документацию?
Ответ №1:
в документации говорится, что блок allProjects для настроек репозиториев, используемых всеми модулями, должен быть добавлен в корневой build.gradle, хотя на самом деле он позволяет мне настраивать репозитории модулей только в settings.gradle в блоке dependencyResolutionManagement.
Возможно, вы захотите задать отдельный вопрос о переполнении стека с минимальным проверяемым примером и подробным описанием ваших ошибок. Это репозиторий GitLab, в теге v2.2
содержит многомодульный проект Android Studio с использованием Gradle 7.0.2, который используется allProjects
для настройки репозиториев.
Другим примером является применение плагинов к модулям приложений, в документации говорится, что первая строка должна быть… В то время как в моей сборке используется
Любой синтаксис работает. Этот plugins
подход был доступен в течение года или около того в проектах Android Studio. Проект, на который я ссылался выше, использует более старый apply plugin
синтаксис. Этот пример проекта, напротив, использует plugins
.
эти страницы документации устарели, Gradle 7 еще не полностью поддерживается, или я смотрю на неправильную документацию?
Ничего из вышеперечисленного, AFAICT. allProjects
и apply plugin
все еще работает, по крайней мере, с Gradle 7.0.2.
Комментарии:
1. Когда я добавляю
allProjects
к верхнему уровнюbuild.gradle
, выдает следующую ошибкуBuild was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle'
2. @razz: IIRC, в вашем есть что-то
settings.gradle
, что говорит Gradle не хотетьallprojects
.3. Это
settings.gradle
содержимое моего файла :dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "SNPTest" include ':app'
. Это тот, который создан Android Studio, я не менял никаких настроек.4. @razz: удалите
dependencyResolutionManagement
закрытие. В нем конкретно говорится «не поддерживать репозитории на основе проектов», чтоallProjects
является частью.5. Что меня интересует, так это то, что если в Gradle сейчас используется конфигурация по умолчанию, то не следует ли обновлять документацию Android, чтобы она соответствовала последней версии Gradle?