一、Gradle安装

1、Gradle安装

(1)先安装JDK/JRE

(2)Gradle下载官网 Gradle官网

(3)解压安装包到想安装到的目录。如D:\java\gradle-5.2.1

(4)配置环境变量。

        变量名:GRADLE_HOME

        变量值:解压到的目录

        

(5)添加到path

        变量名:Path

        变量值:%GRADLE_HOME%\bin;

        

2、Gradle配置

(1)配置本地仓库

        变量名:GRADLE_USER_HOME

        变量值:自定义Gradle仓库目录或者Maven的仓库目录

        

(2)配置仓库源

        在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。

allprojects {
repositories {
maven { url 'file:///C:/Java/maven_repository'}
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
} buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}

repositories中写的是获取jar包的顺序。先是本地的Maven仓库路径;接着的mavenLocal()是获取Maven本地仓库的路径,应该是和第一条一样,但是不冲突;第三条和第四条是从国内和国外的网络上仓库获取;最后的 mavenCentral() 是从Apache提供的中央仓库获取jar包。

(3)配置到IDEA

        在IDEA的Setting里打开"Build, Execution, Deployment"-"Build Tools"-"Gradle"。

        勾选 Use local Gradle distribution,在 Gradle home中选择安装的Gradle的路径。

        如果在变量和配置文件中设置了Gradle的仓库路径,在Service directory path中就会自动填写地址,如果想改的话可以手动修改。

        

二、Gradle仓库配置

1、本地仓库配置

      配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包。

      

2、远程仓库配置

      一般Gradle、maven从中央仓库mavenCentral()(http://repo1.maven.org/maven2/)下载依赖包,但是在国内下载速度巨慢,我们只能使用国内的镜像。

所以每个Gradle构建的项目中,我们可以在build.gradle做如下配置

repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral()
}

3、全局仓库配置

      每个项目都单独配置难免麻烦些,我们可以配置一个全局配置文件。gradle加载全局配置按优先级顺序有如下四种方式:

(1)通过--I 或者--init-script参数在构建开始时指定路径,如

    gradle --init-script init.gradle clean
gradle --I init.gradle clean

init.gradle文件示例:

allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
}
}
}

(2)加载USER_HOME/.gradle/init.gradle文件

(3)加载USER_HOME/.gradle/init.d/目录下的以.gradle结尾的文件

(4)加载GRADLE_HOME/init.d/目录下的以.gradle结尾的文件

三、Gradle仓库配置详解

      支持的类型有如下几种:

类型 说明
Maven central repository 这是Maven的中央仓库,无需配置,直接声明就可以使用。但不支持https协议访问
Maven JCenter repository JCenter中央仓库,实际也是是用的maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问。
Maven local repository Maven本地的仓库,可以通过本地配置文件进行配置
Maven repository 常规的第三方Maven仓库,可设置访问Url
Ivy repository Ivy仓库,可以是本地仓库,也可以是远程仓库
Flat directory repository 使用本地文件夹作为仓库

1、Maven central repository

      在build.gradle中配置:

repositories {
mavenCentral()
}

就可以直接使用了。

2、Maven JCenter repository

      最常用也是Android Studio默认配置:

repositories {
jcenter()
}

这时使用jcenter仓库是通过https访问的,如果想切换成http协议访问,需要修改配置:

repositories {
jcenter {
url "http://jcenter.bintray.com"
}
}

3、Local Maven repository

      可以使用Maven本地的仓库。默认情况下,本地仓库位于USER_HOME/.m2/repository(例如windows环境中,在C:\Users\NAME.m2.repository),同时可以通过USER_HOME/.m2/下的settings.xml配置文件修改默认路径位置。

      若使用本地仓库在build.gradle中进行如下配置:

repositories {
mavenLocal()
}

4、Maven repositories

      第三方的配置也很简单,直接指明url即可:

repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}

5、ivy repositories

      配置如下:

repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}

6、Flat directory repository

      使用本地文件夹,这个也比较常用。直接在build.gradle中声明文件夹路径:

repositories {
flatDir {
dirs 'lib'
}
flatDir {
dirs 'lib1', 'lib2'
}
}

使用本地文件夹时,就不支持配置元数据格式的信息了(POM文件)。并且Gradle会优先使用服务器仓库中的库文件:例如同时声明了jcenter和flatDir,当flatDir中的库文件同样在jcenter中存在,gradle会优先使用jcenter的。

7、常用仓库

repositories {
mavenCentral()
maven { url "https://jitpack.io" }
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
https://plugins.gradle.org/m2/
maven { url 'http://maven.oschina.net/content/groups/public/' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
maven { url "http://maven.springframework.org/release" }
maven { url "http://maven.restlet.org" }
maven { url "http://mirrors.ibiblio.org/maven2" }
maven {
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
}
maven { url 'https://maven.fabric.io/public' }
jcenter()
google()
}

四、Gradle Wrapper使用

对于所有Gradle项目来说,都推荐使用Gradle Wrapper,甚至应该将其当做创建代码库之后的第一件事来做。使用Gradle Wrapper有以下好处:

      (1)不用安装Gradle也能运行Gradle

      (2)所有人使用相同版本的Gradle

在build.gradle中加入以下配置:

task wrapper(type: Wrapper) {
gradleVersion = '4.6'
}

然后再运行gradle wrapper,此时会生成gradlew、gradle.bat两个文件和gradle目录。这里的gradlew和gradle.bat是脚本文件,在使用gradle命令的地方替换为gradlew或gradle.bat,它们将自动下载指定版本的gradle,然后使用该版本进行项目构建。

      请注意,这3个文件是要提交到代码库上的,当项目其他人拿到代码之后,由于gradlew和gradle.bat均在源代码中,他们本地即使没有安装gradle,也能通过./gradlew build命令进行项目构建。

参考[1]Gradle的安装与配置

      [2]Gradle学习(一)gradle本地、远程仓库配置

      [3]Gradle仓库配置

      [4]一篇文章讲清楚Gradle与Gradle Wrapper的区别

最新文章

  1. mac下彻底卸载mysql方法
  2. 浅谈.NET Micro Framework性能优化 转自 软件中国
  3. [React] Intro to inline styles in React components
  4. phpmyadmin上传较大sql文件
  5. 再次深入 C# Attribute
  6. 日期时间范围选择插件:daterangepicker使用总结
  7. git取消跟踪已版本控制的文件
  8. Go语言系列(七)- 读写操作
  9. 3.27PSP及体会
  10. php获取数据库结构
  11. Unity3D学习笔记(三十):Lua
  12. 20155312 2006-2007-2 《Java程序设计》第六周学习总结
  13. java字节码的工具(含IDEA插件)
  14. PAT甲题题解-1103. Integer Factorization (30)-(dfs)
  15. 解决easyui combobox不能默认选中
  16. 讲讲python“=”运算符上的优雅语法
  17. Maven学习(十三)-----Maven 构建生命周期
  18. centos7 lvs+keepalived nat模式
  19. JavaWeb项目中各个文件夹的作用
  20. struts2学习笔记(3)struts.xml的一些常用设置

热门文章

  1. fork函数详解(附代码)
  2. 目录扫描工具 dirsearch 使用详解
  3. Iceberg概述
  4. Java测试开发--Comparable和Comparator接口(五)
  5. Unity——技能系统(二)
  6. Intellij IDEA 配置Junit
  7. ofd文件电子签章实现方法
  8. Python学习周总结(二)
  9. [loj2470]有向图
  10. 【TcaplusDB知识库】如何部署TcaplusDB Local 版