gradle配置指南

一、Gradle配置

1、配置环境变量

配置环境变量 %GRADLE_HOME%

gradle安装根目录

配置环境变量 %GRADLE_USER_HOME%

GRADLE_USER_HOME 相当于配置 Gradle 本地仓库位置和 Gradle Wrapper 缓存目录

2、配置本地仓库

变量名:GRADLE_USER_HOME

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

3、配置仓库源

在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包。

4、远程仓库配置

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

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

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

5、全局仓库配置

每个项目都单独配置难免麻烦些,我们可以配置一个全局配置文件。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结尾的文件

二、常用仓库

复制代码
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命令进行项目构建。

四、Windows配置Gradle缓存目录

为了减少C:\Users\username\.gradle目录的大小,所以我们需要修改gradle的缓存目录。通过配置 GRADLE_USER_HOME 环境变量来指定Gradle缓存目录。

变量名输入GRADLE_USER_HOME,变量值输入绝对路径,比如:D:\install\Android\gradle

相关推荐
云达闲人5 小时前
搭建DevOps企业级仿真实验环境:009Proxmox综合实战:九节点环境准备
集群·devops·运维自动化·proxmoxve·ssh 免密互信·服务器集群免密·src运维
程序设计实验室21 小时前
lighthouse-fw:一个管理腾讯云轻量服务器防火墙的终端工具
devops
云达闲人1 天前
搭建DevOps企业级仿真实验环境:008Proxmox 九节点虚拟机批量创建
自动化运维·devops·proxmox ve·批量克隆·虚拟机模板·netplan静态ip配置·sre 运维
热爱运维的小七3 天前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
云达闲人3 天前
搭建DevOps企业级仿真实验环境:007Proxmox 虚拟机模板制作
devops·proxmox ve·虚拟化运维·虚拟机模板制作·pve 模板·企业级仿真实验环境·虚拟机克隆
云达闲人3 天前
搭建DevOps企业级仿真实验环境:006Proxmox 基础环境验证
运维·devops·proxmox ve·sre·仿真实验环境·快照与克隆·运维实操教程
行者-全栈开发4 天前
Linux 核弹级高危漏洞 CVE-2026-31431 完整修复指南
linux·运维·服务器·ci/cd·devops·cve·核弹级高危漏洞
AC赳赳老秦5 天前
项目闭环管理:用 OpenClaw 对接 Jira / 禅道,实现需求 - 任务 - 进度 - 验收全流程自动化
运维·人工智能·python·自动化·devops·jira·openclaw
Misnice5 天前
DevOps 介绍
运维·devops
炸裂狸花猫6 天前
开源身份认证与访问管理平台 - Keycloak(一)
docker·云原生·kubernetes·开源·devops