温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

发布时间:2020-08-10 10:03:07 来源:亿速云 阅读:3932 作者:小新 栏目:开发技术

小编给大家分享一下IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

缘起

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

目标

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

IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

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,这两个是不一样的

IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

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的方法及GRADLE_USER_HOME和Gradle user home的区别是什么IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

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图形按钮的版本并不一致。

IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

如何验证这个坑?

可以在你下载的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:

IDEA配置Gradle的方法及GRADLE_USER_HOME和Gradle user home的区别是什么

第三种解决方案,配置单独的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的方法及GRADLE_USER_HOME和Gradle user home的区别是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI