2021年,如何优雅的使用idea+Gradle?

2021年,如何优雅的使用idea+Gradle?

Gradle + idea 初始化配置

2021+版本的ideaSetting...对Gradle的设置与2019年及以前的版本项目有了很大的改变,本篇文章介绍了如何正确的在新版本的idea中配置Gradle的仓库位置及优先使用maven本地仓库,以免造成数据的冗余。(强迫症狂喜)

本篇文章使用的环境:
操作系统:Windows 10 专业版 21H1
IntelliJ IDEA版本: 2021.1.3 (Ultimate Edition)
JDK版本: 11.0.11+9-b1341.60 amd64
(无需下载Gradle,idea自带Gradle插件,构建时默认使用最新稳定版)

与以前的版本相比,首先是界面的不同:

在这里插入图片描述

是的你没看错,General settings只有一个Gradle user home。如果你查过其他资料,应该会想起环境变量的配置GRADLE_USER_HOME。那么,它们之间的关系是什么呢?

gradle user home其实是idea的项目从中央仓库下载jar包和Gradle环境还有其他配置文件的目录,这个目录默认是和GRADLE_USER_HOME同步的,所以我们并不需要修改gradle user home,只需要在环境变量中加入GRADLE_USER_HOME即可自动修改gradle user home

Tips:gradle user home的默认路径是 C:\Users\用户名\.Gradle,也就是说默认下载的位置就是这里,C盘爆炸的真凶找到了!

Tips 2:很多教程中提到gradle user home可以被改为官网下载的Gradle程序的目录,其实这样做并不好。idea会优先从gradle user home中寻找可执行的gradle.bat程序,而我们自己设置的Gradle可能会与project默认的gradle程序的版本不同,这将会导致一个project中出现gradle异常的情况。如何使用自己的Gradle程序又不会使project的Gradle版本出现错误,见后文详解。

1.添加GRADLE_USER_HOME

综上所述,我们的第一步就是在操作系统中添加GRADLE_USER_HOME(Linux系统请自行百度,本篇不再赘述):

1.打开“设置”,选择“系统”

在这里插入图片描述

2.拉到最下面的关于,选择高级系统设置

在这里插入图片描述

3.选择右下角的“环境变量” -> “新建” -> 变量名为GRADLE_USER_HOME,值即为你想保存的目录路径。

在这里插入图片描述

这样就配置好了我们的下载目录了。打开idea,新建一个project测试一下。

在这里插入图片描述

可以看到,在创建一个空的Gradle project后,我们先前设置的目录D:\Maven\Gradle自动生成了许多文件夹,简单介绍一下:

.\caches\modules-2\files-2.1 中存放了我们从中央仓库所下载的jar包
.\wrapper\dists 中存放的是Gradle 程序(这也是我说不需要自己下的原因,idea会主动帮我们下好)

修改完位置,创建完new project,你可能发现了——怎么下包这么慢,我要配置远程仓库!但一个个project的build.gradle改太慢了,让我们使用相当于maven的settings.xml一样的init.gradle吧!

init.gradle 配置全局仓库

init.gradle相当于maven中的settings.xml,因此它也是有加载顺序的:

  1. ~/.gradle/init.gradle文件
  2. ~/.gradle/init.d/目录下的以.gradle结尾的文件
  3. GRADLE_HOME/init.d/目录下的以.gradle结尾的文件
  4. GRADLE_USER_HOME/init.gradle文件
  5. GRADLE_USER_HOME/init.d目录下的以.gradle结尾的文件

这里的GRADLE_HOMEGRADLE_USER_HOME都是系统环境变量,GRADLE_HOME就是Gradle安装的位置,

~相当于C:\Users\Holme\用户名,也就是说上面的内容是linux/windows通用。

我们之前已经配置了GRADLE_USER_HOME,因此就在D:\Maven\Gradle目录下新建init.gradle文件:

allprojects {
    
    
	repositories {
    
    
        maven {
    
     url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven {
    
     url 'https://maven.aliyun.com/repository/google' }
        maven {
    
     url 'https://maven.aliyun.com/nexus/content/groups/public/' }
        maven {
    
     url 'https://maven.aliyun.com/repository/jcenter' }
        mavenCentral()
    }
}

这段代码表示我们将aliyun的几个maven仓库作为我们的首选下载地址,如果这四个地址都找不到,则调用 mavenCentral()方法从maven中央仓库中寻找jar包。(因此Gradle查找仓库的顺序是从上往下)

使用本地maven仓库作为我们的首选仓库

大家学习Gradle时基本上已经学习过maven了,因此在本地肯定也有属于自己的maven仓库。(没学过的可以看我的文章学习一下如何优雅地使用idea+maven)

我们只需要在上述代码中添加一行mavenLocal()即可:

repositories {
    
    
    mavenLocal()
}

但我们还不知道Gradle知不知道我们本地仓库的位置在哪呀?!(有点绕)不着急,我们先来看看Gradle查找本地仓库位置的过程:

  1. ~/.m2/settings.xml
  2. M2_HOME/conf/settings.xml
  3. ~/.m2/repository

这里的 M2_HOME是系统环境变量,也就是maven的安装目录。

看到这里你是不是已经恍然大悟了呢,我们只需要修改settings.xml文件或者直接使用默认设置即可。这里简单介绍一下settings.xml文件该如何配置。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:\Maven\repository</localRepository>
</settings>

前面一堆约束并不重要,重点就是<localRepository>D:\Maven\repository</localRepository>这个标签,将标签内容换成你的maven repository地址即可。

至此,你完成的idea+Gradle 的基本配置。

如何在项目中指定Gradle程序的位置?

让我们打开一个project,再打开settings,进入Gradle的settings。

在这里插入图片描述

我们发现界面和之前不太一样,红色圈起来的User Gradle from设置可以让我们配置自己的Gradle程序目录:

在这里插入图片描述

选择Specified location,并在右边选择你的Gradle目录路径,即可选择你自己的Gradle程序。只要 Gradle User home不变,下载的目录依然是我们在环境变量中设置的位置,这样就不会产生Gradle版本冲突了。

猜你喜欢

转载自blog.csdn.net/Holmes_shuai/article/details/119665758
今日推荐