Gradle可以使用的maven仓库有jcenter()和mavenCentral(),国内访问的速度大部分时候让人捉急,特别是稍微大一点的jar。
PS:Gradle和maven不一样,gradle并没有默认指定maven仓库源地址,只是便捷的提供了两个选择。
repositories {
jcenter()
//或者
mavenCentral()
}
下面介绍如何全局配置阿里云maven仓库源地址。
Gradle默认的全局工作目录默认在用户目录下的.gradle文件夹。mac用户为 ~/.gradle
,window用户一般为 C://xxxxx/Users/your_name/.gradle
。
在.gradle文件夹下,创建一个init.gradle文件,内容如下:
这个groovy脚本的基本意思就是新增阿里云的源和maven本地仓库。然后project中配置的mavenCentral或者jcenter删除掉。
这也可以看出Gradle这个构建工具由于采用了Groovy而带来的灵活性和强大的描述能力。
init.gradle
文件
allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo.maven.apache.org/maven2/') || url.startsWith('https://repo.maven.org/maven2') || url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
//project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
}
buildscript {
repositories {
maven{ url 'https://maven.aliyun.com/repository/public/'}
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
//project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
}
}
}
https://maven.aliyun.com/repository/public/ 是阿里云Maven仓库镜像的地址,
你也可选选择使用华为云的maven地址 https://mirrors.huaweicloud.com/repository/maven/
华为云的镜像地址可以作为私服的代理,阿里云8月份分布的新系统目前还不支持私有代理。