gradle使用阿里源及设置初始化脚本

下载依赖一般是先在本地查找,如果本地没有再去远程仓库查找。gradle是可以复用本地的maven仓库的,只要在安装maven时指定了M2_HOME即可。在build.gradle使用如下:

repositories {
    mavenLocal()
    mavenCentral()
}

这样在依赖管理的时候就会先从本地的maven仓库查找,如果没找到才会去远程仓库查找。
但是在天朝,访问国外的maven仓库速度是非常可怜的,所以最好用国内的镜像,这里以阿里爸爸的镜像仓库举例,阿里爸爸的仓库速度是非常棒的,gradle允许添加自定义远程仓库,只需在repository添加一个远程仓库即可,如下:

repositories {
    mavenLocal()

    maven { url 'http://maven.aliyun.com/nexus/content/repositories/central/' }

    mavenCentral()
}

这样依赖的查找顺序就变成了先本地仓库查找,找不到再到阿里镜像仓库查找,都不成功才到maven中心库查找。

gradle默认生成的build.gradle文件的repositories里面是只有mavenCentral()的,虽说修改也不麻烦,但是不会偷懒的程序员就不是一个好的程序员,我们可以给gradle添加初始化脚本,这样就不用每次创建项目都去修改build.gradle了。

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方定制一些全局设置,比如配置仓库地址
可以使用初始化脚本的位置:

  • 命令行
  • 放一个init.gradle 文件到USER_HOME/.gradle/目录下
  • 放一个后缀是.gradle的文件到 USER_HOME/.gradle/init.d/ 目录下.
  • 放一个后缀是.gradle的文件到 GRADLE_HOME/init.d/ 目录下.

我们以最后一种方式举例,因为这个路径是最好找的。
建立一个init.gradle文件,内容如下:

allprojects {
    repositories {
        mavenLocal()
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/central/' }
    }
}

然后放到GRADLE_HOME/init.d/下。

我们测试一下,新建一个项目,选取一些本地没有的依赖,然后查看依赖的下载任务:这里写图片描述
可以看到,依赖的下载地址为阿里的远程仓库。

我们再在build.gradle中建立一个任务:

task showRepositories << {
    println "All repositories url:"
    println repositories.collect { it.url }
}

在IDEA的右侧gradle工具栏中找到任务showRepositories,双击执行:
这里写图片描述
可以看到如下输出:这里写图片描述

可以看到三个仓库url,分别是本地仓库、阿里仓库、maven中央仓库。

猜你喜欢

转载自blog.csdn.net/qq_36666651/article/details/80718978