网上看到不少在init.gradle
中的allprojects
配置全局maven的代码。
但是在新版AndroidStudio的gradle.kts
模板中(或高版本gradle),想要不修改直接使用是不行的,会抛出如下错误。
Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'init.gradle'
原因出在项目的settings.gradle
中默认设置了:
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
改成以下代码就行了:
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
但是这样每个新项目都要修改就很麻烦。
此处提供init.gradle.kts
,能够做到无感配置全局maven,放置在<用户目录>/.gradle/
下即可生效。
@file:Suppress("UnstableApiUsage")
object AliYunMaven {
const val CENTRAL = "https://maven.aliyun.com/repository/central/"
const val CENTRAL_JCENTER = "https://maven.aliyun.com/repository/public/"
const val GOOGLE = "https://maven.aliyun.com/repository/google/"
const val GRADLE_PLUGIN = "https://maven.aliyun.com/repository/gradle-plugin/"
const val APACHE_SNAPSHOTS = "https://maven.aliyun.com/repository/apache-snapshots/"
}
settingsEvaluated {
pluginManagement {
repositories {
clear()
maven { url = uri(AliYunMaven.CENTRAL) }
maven { url = uri(AliYunMaven.CENTRAL_JCENTER) }
maven { url = uri(AliYunMaven.GOOGLE) }
maven { url = uri(AliYunMaven.GRADLE_PLUGIN) }
maven { url = uri(AliYunMaven.APACHE_SNAPSHOTS) }
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositories {
clear()
maven { url = uri(AliYunMaven.CENTRAL) }
maven { url = uri(AliYunMaven.CENTRAL_JCENTER) }
maven { url = uri(AliYunMaven.GOOGLE) }
maven { url = uri(AliYunMaven.APACHE_SNAPSHOTS) }
google()
mavenCentral()
}
}
}