浅析IDEA如何正确配置Gradle? GRADLE_USER_HOME 和 Gradle user home的区别

缘起

网上已经有了如此多的IDEA配置Gradle的文章,为何本菜鸟还想再写一篇这样的水文呢? 原因是按照网上大多数的配置,Gradle并不能按照你的想法很好的工作,倒不是说根据其他大佬的博客不能构建,而是你在构建时会发现IDEA使用的Gradle版本并不是wrapper中指定的版本。

目标

正确配置IDEA(2019.2.4), 使得在Terminal中执行以gradlew开头命令和操作图形化的IDEA使用Gradle版本是同一个版本。

GRADLE_USER_HOME和Gradle user home的区别

GRADLE_USER_HOME

  • GRADLE_USER_HOME指的是你需要配置的环境变量。该环境变量决定了执行 project/gradle/gradle-rapper.jar时下载 project/gradle/gradle-wrapper.properties中指定版本gradle的存放位置。
  • 简言之:在命令行中输入的以gradlew的开头的命令会使用GRADLE_USER_HOME指定环境变量所在位置来存放下载的gradle.
  • 注意:必须是gradlew开头的命令,不能是gradle开头的命令。原因是gradlew开头的命令说明你想使用gradle wrapper, 而gradle开头的命令则是使用的你配置在环境变量当中的gradle,这两个是不一样的

Gradle user home

  • Gradle user home指的是IDEA中关于gradle的配置,该配置指是给IDEA使用的,当你在IDEA中点击gradle相关的图形按钮时,譬如gradle构建任务的按钮或者是Enable-AutoImport按钮时会使用Gradle user home指定的目录下载project/gradle/gradle-wrapper.properties指定的gradle版本
  • 简言之:在IDEA中的各种图形化操作都是使用这个目录去保存下载的gradle。

IDEA Gradle user home的坑

Gradle user home配置的不好的话是有一个大坑的,按照网上大多数的配置都会踩到这个坑,而且极不容易被发现。
这个坑的现象是:你在Terminal中输入的gradlew的任何命令使用的gradle版本和IDEA中图形化操作使用的gradle版本是不一致的。

造成这个坑的必要条件:

1、你下载了一个版本的Gradle版本,并且按照网上的博客配置了Gradle环境变量。
2、你在IDEA中配置了Gradle user home,并且该把该目录指向了你在本地自己下载解压的gradle。

如果你按照上面的配置,并且你自己单独下载的gradle和project/gradle/gradle-wrapper.properties中指定版本不一致时,你在IDEA中的Terminal中执行和点击IDEA图形按钮的版本并不一致。

如何验证这个坑?

可以在你下载的gradle/init.d目录中写一个名为 init.gradle的脚本。你需要在三个地方写这个脚本,一个是你自己单独下载的gradle,一个是GRADLE_USER_HOME中下载的gradle版本,一个是IDEA Gradle user home指定目录中下载的grald中都加上,你就能清晰的看出到底当前使用的是那个gradle.

allprojects {
	println "using gradle wrapper v5.6.4 version!!!"
}

最终解决方案

  • 第一种解决方案,不下载Gradle,不配置关于Gradle的任何的环境变量,不配置IDEA的Gradle user home这种方式对于向使用Gradle的小白来说比较方便。此时你创建IDEA工程时,IDEA会自动下载工程目录下gradle/gradle-wrapper.properties中指定的Gradle版本到你的家目录的 .gradle目录下。
  • 实际上使用Gradle的确不需要自己额外安装一个Gradle,gradle的设计者考虑到gradle会频繁的升级因此每个gradle工程会带有一个gradle的目录,这个目录主要作用就是描述当前工程需要哪个版本的gradle,以及如何下载gradle. 因此你拿到别人的gradle项目,即使本机没有安装gradle,当你执行以gradlew开头的命令时会自行下载这个项目想要的gradle版本。

第二种方案:如果你想自己安装gradle,并且所有的工程都使用你自己单独安装的gradle。

  • 配置Gradle的环境变量,使得在任意的路径下可以执行gradle的可执行文件。
  • 配置GRADLE_USER_HOME和IDEA 中的 Gradle user home路径,这里的路径实际上可以不指定。- 可选操作
  • 配置 User from gradle指向安装的gradle:

第三种解决方案,配置单独的gradle,并且工程默认使用gradle wrapper.

  • 配置Gradle的环境变量,使得在任意的路径下可以执行gradle的可执行文件。
  • 配置GRADLE_USER_HOME和IDEA 中的 Gradle user home路径,这里的路径实际上可以不指定。

注意:如果想要指定Gradle user home,那么一定不要配置为你安装的gradle所在目录,否则即使制定了user gradle from : gradle-wrapper.properties也不起作用,此时IDEA图形化的操作只会使用你在外面配置的gradle,而不会使用gradle wrapper,即项目指定的gradle。

  • 配置 User gradle frome: gradle-wrapper.properties:

到此这篇关于IDEA如何正确配置Gradle? GRADLE_USER_HOME 和 Gradle user home的区别的文章就介绍到这了,更多相关IDEA配置Gradle内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决 IDEA 创建 Gradle 项目没有src目录问题

    前几天遇到一个问题,就是使用ider创建gradle项目后,src目录没有自动生成出来,今天就给大家分享一下怎么解决. 目录: 1.创建Gradle项目 2.解决没有生成src目录 问题一:创建gradle项目 首先打开ider创建gradle项目 新建项目选择左侧gradle,右侧选择自己jdk版本,勾选java项目,点击Next 写上GroupId组名ArtifactId项目名后点击Next 这里选择使用本地gradle分布,在下面url选择自己本机gradle路径即可,点击Next选择项目

  • 使用IDEA和Gradle构建Vertx项目(图文步骤)

    最近是真的忙,好久没写了,再来分享一点新东西!!! 一. 新建Gradle项目 ① ②选择Gradle(如果没有安装gradle,自己下载一个) ③ ④选择gradle 下一步,然后输入项目名称和磁盘路径,点击Finish. 二.配置vertx依赖 项目打开之后,在build.gradle文件中dependencies里面加入vertx的核心依赖 compile 'io.vertx:vertx-core:3.4.2' 在build.gradle最下面加入任务 task copyJars(type

  • 在IDEA里gradle配置和使用的方法步骤

    前言 有人说Gradle使用groovy语言编写,简单,明了没像maven使用xml臃肿,其实我倒不觉得,我觉得maven挺好的,管理jar依赖和项目生命周期挺方便的,我使用gradle只是因为公司用,不然我估计不会学习gradle.下面是gradle的优点,自己斟酌吧. 1. 按约定声明构建和建设: 2. 强大的支持多工程的构建: 3. 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建工程: 4. 全力支持已有的 Maven 或者Ivy仓库基础建设: 5. 支持传递性依赖管理,

  • 详解IDEA下Gradle多模块(项目)的构建

    我们在新起一个项目的时候,一般都会建多个子项目(IDEA里面称之为Module模块).通过Gradle构建,多个Module之间需要将公用的配置抽取到全局,子项目中只写差异化的配置,以便于维护. 多模块项目的Gradle目录结构 示例:我的示例项目demo,我需要有一个common模块用于公用代码,一个rest模块用于提供rest接口,rest依赖common,如果用gradle构建,目录树会是这样: demo ├── build.gradle -- 全局配置 ├── settings.grad

  • 浅析IDEA如何正确配置Gradle? GRADLE_USER_HOME 和 Gradle user home的区别

    缘起 网上已经有了如此多的IDEA配置Gradle的文章,为何本菜鸟还想再写一篇这样的水文呢? 原因是按照网上大多数的配置,Gradle并不能按照你的想法很好的工作,倒不是说根据其他大佬的博客不能构建,而是你在构建时会发现IDEA使用的Gradle版本并不是wrapper中指定的版本. 目标 正确配置IDEA(2019.2.4), 使得在Terminal中执行以gradlew开头命令和操作图形化的IDEA使用Gradle版本是同一个版本. GRADLE_USER_HOME和Gradle user

  • SpringBoot浅析安全管理之高级配置

    目录 角色继承 动态权限配置 1. 数据库设计 2. 自定义FilterInvocationSecurityMetadataSource 3. 自定义 AccessDecisionManager 4. 配置 角色继承 SpringBoot浅析安全管理之基于数据库认证中定义了三种角色,但是这三种角色之间不具备任何关系,一般来说角色之间是有关系的,例如 ROLE_admin 一般既具有 admin 权限,又具有 user 权限.那么如何配置这种角色继承关系呢?只需要开发者在 Spring Secur

  • 正确配置与维护Apache安全性设置方法

    一,Apache服务器的介绍 Apache服务器它是Internet网上应用最为广泛的Web服务器软件之一.Apache服务器源自美国国家超级技术计算应用中心(NCSA)的 Web服务器项目中.目前已在互联网中占据了领导地位.Apache服务器得经过精心配置之后,才能使它适应高负荷,大吞吐量的互联网工作.快速.可靠.通过简单的API扩展,Perl/Python解释器可被编译到服务器中,且完全免费,完全源代码开放.如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择. 二

  • 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法

    有时候用phpMyAdmin的时候会突然出现这个错误信息 "无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装" 也不知道到底是怎么导致这错误信息的,而我有时候把apache重启一下,再登录就行了,有时候把机器重启也可以 但今天2种方法都试了,还是不行,我的登录URL是 http://computer-name:8080 然后我尝试着使用 http://127.0.0.1:8080 进行登录,结果就可以了... 使用127.0.0.1登录成功后,退出,

  • 深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

    在上篇文章给大家介绍了Java log4j详细教程,本文给大家介绍java web log4j配置及web项目中配置log4j的技巧.具体详情请看下文吧. 首先给大家提供log4j.jar下载:http://logging.apache.org/log4j/1.2/download.html 一.java web项目使用log4j 1.在web.xml文件中添加 <!-- 配置log4j --> <context-param> <param-name>webAppRoo

  • PHP正确配置mysql(apache环境)

    写了一个测试mysql的php文件如下: 复制代码 代码如下: <?php $link=mysql_connect('localhost','root','root'); if(!$link) echo "失败!"; else echo "成功!"; mysql_close(); ?> 结果报错误:Fatal error: Call to undefined function mysql_connect(),明显没法找到mysql相应的库,百度了一大堆,

  • Spring boot 打jar包分离lib的正确配置方式

    前言 Springboot 打jar包分离lib,配置文件的方式,网上可以搜到的我都没试通.跟刘大神(大神没有博客,很可惜)讨论后,给出了这么一个解决方案,供大家参考. 部署环境 window 10 redhat 6.4 其他版本没有尝试,应该也是可以的 POM.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.

  • Django项目如何正确配置日志(logging)

    当Django项目正式部署上线后,我们需要设置DEBUG = False.这时开发者应怎样检查Django程序在生产环境运行时有什么异常或错误呢?答案就是日志(logging).在生产环境中,Django默认是不会在服务器上自动生成log文件的,即使程序出现error级别的故障也不会通知管理员.本文将教你如何在Django项目中正确配置日志(logging),让Django生成log日志文件,并在程序运行发生error级别故障时通知管理员. 日志基础知识 日志与我们的软件程序密不可分.它记录了程

  • AndroidStudio3.6的卸载安装,Gradle持续下载/Gradle Build失败等问题

    因为某些原因,重装了AS,重装过程中在Gradle Build上遇到了很多问题,最后发现是下载被墙的问题,没有配置镜像.所以做此总结~ 1. 安装卸载AndroidStudio 1.1 卸载: 步骤一:在安装目录下找到install文件运行卸载,或者采用第三方软件(安全管家)进行卸载. 步骤二:在C:\Users\Administrator 下删除 \.AndroidStudio3.X,\.gradle,\.android文件. 1.2 安装 步骤一:官网下载:https://developer

  • 浅析vue-router jquery和params传参(接收参数)$router $route的区别

    今天做项目时踩到了vue-router传参的坑(jquery和params),所以决定总结一下二者的区别. 1.jquery方式传参和接收参数 传参: this.$router.push({ path:'/xxx' query:{ id:id } }) 接收参数: this.$route.query.id 注意:传参是this.$router,接收参数是this.$route,这里千万要看清了!!! this.$router 和this.$route有何区别? 在控制台打印两者可以很明显的看出两

随机推荐