文档章节

maven用户试用gradle

大漠小北
 大漠小北
发布于 2015/01/20 11:00
字数 1079
阅读 4306
收藏 126

老话,适合的才是最好的。
此处不做gradle和maven的比较。只说下我,一个偏执的maven用户如何尝试使用gradle的经验。

我用maven好些年了,自己机器上还搭了个nexus。
最近看到有个demo需要gradle才能跑起来,于是打算尝试下。

首先gradle的下载、配置,对一个程序猿来说,这都不是事,如果这都搞不定,可能你有点点不太适合做这一行。
Win7下,直接用setx设置环境变量。
先设置gradle的安装目录或者说是解压缩出来的目录,这个目录下至少应该保留有bin、lib,其他文件或者目录偏执狂可以尽情删掉。

setx GRADLE_HOME "E:\gradle"

再把gradle的可执行文件路径加入到Path变量里。为什么要加?因为想不带路径的执行一个命令(exe、bat、cmd之类),就需要在命令搜索路径列表中把这个命令所在的路径加进去。

setx Path ".;%%GRADLE_HOME%%\bin;"

gradle和maven一样,都是要把jar包下到本地缓存起来的。
gradle可以复用maven的私有仓库和中央仓库。中央仓库什么的先不管,偏执狂大多关心的是gradle如何先复用maven已经下好的jar包,那些没有的jar包再下到gradle的缓存目录。

gradle官网和度娘给出的一些教程上,都说

repositories {
   mavenLocal()
}

命令行切到demo目录,执行gradle jettyRun试了试,C盘用户目录刷刷的下东西。
原因是gradle默认是下载C盘用户目录的。
度娘是不会告诉你如何设置一个长期的缓存目录的。谷哥知道,但是需要懂科学。
谷哥给了多种设置方法:系统环境变量、jvm环境变量、gradle命令行参数等等。我选择比较简单也相对长期的系统环境变量设置方式。
把gradle缓存目录指向了gradle安装目录下的.gradle目录

setx GRADLE_USER_HOME %GRADLE_HOME%\.gradle

设置完成后,删了C盘用户目录gradle下的东西。重新启动gradle jettyRun。这回没往C盘用户目录写了,写在了%GRADLE_HOME%\.gradle 这个目录里。mavenLocal()拼写没错啊,build.gradle也没错啊,但是以往maven下过的jar包还是在重复下,果断ctrl+c。

度娘问了半天是没结果的,从谷哥给的建议找到官网,上面介绍了复用maven本地仓库的搜索路径,主要是通过maven的settings.xml。
maven配置用的默认的那些朋友,自然不会碰到我这样的问题。因为可以直接在C盘用户目录找到这个settings.xml。
如果设置了M2_HOME的那些朋友,自然也不会碰到我这样的问题。因为可以直接在M2_HOME下的conf目录找到这个settings.xml。

像我这样只配了maven可执行路径到Path环境变量的朋友,自然会碰到我这样的问题。解决方法很easy,把M2_HOME这个环境变量加上,值就是maven的安装目录。

setx M2_HOME %MAVEN_HOME%

设置完成后,删了%GRADLE_HOME%\.gradle 这个目录的东西。重新启动gradle jettyRun。愉快的看着demo顺利启动了,没有重复下jar包,都利用的maven本地仓库已有的包。

送给爱折腾想尝试gradle的mavener。

题外话,eclipse的maven插件最近几个版本好像是已经集成了。起码kepler和luna都有的。gradle的插件要从springsource的插件库去装。蛋疼的CMCC网速下了好几次到一半都timeout了,幸好照猫画虎借了点科学姿势,配了代理顺利安装好了。gradle的插件里面的配置,建议手工写成gradle安装目录的地址。用默认配置的话,会自己下个gradle并且把缓存下到C盘。

很多时候需要找jar包的依赖树,maven的插件很直观的看到,gradle插件就比较头疼了,铁定是我不会用。想来想去,虽然gradle比较简洁、强大(执行自定义任务方面),最后还是觉得maven比较适合我,对我来说maven这个工具也算是最好的了。

© 著作权归作者所有

大漠小北
粉丝 4
博文 4
码字总数 2836
作品 0
成都
程序员
私信 提问
加载中

评论(21)

天空冰雨
天空冰雨
弹个幕
song314
song314

引用来自“Xushao”的评论

搞android开发,就知道gradle的强大了。

引用来自“loyal”的评论

哦?你写个系列文章,让我学习学习
+1 求大神分享
mz0827
mz0827

引用来自“soberh”的评论

用 > gradle dependencies 就可以看到依赖树了

引用来自“大漠小北”的评论

嗯嗯,后来看gradle的命令行是找到了,gradle是很好很强大的。但是在eclipse用习惯了,再开个cmd窗口执行命令就有点不爽了。maven的插件可以展示树形结构,还可以直接屏蔽某个树上的依赖jar,很是方便,而gradle的插件还有待发展。这不是gradle的错,是辅助工具不完善的问题。
所谓的maven的插件是哪个?求指教。我一直用的是intelliJ自带的
loyal
loyal

引用来自“Xushao”的评论

搞android开发,就知道gradle的强大了。
哦?你写个系列文章,让我学习学习
快乐杰哥
快乐杰哥
赞一个
n
nuc093
适合的才是最好的 能把maven 用好已经很不错。
ccor
ccor
无法和国外的coder比爽,需要多学更多额外的科学知识,多走许多的路……
Feng_Yu
Feng_Yu
可以将gradle仓库加上artifactory/nexus缓存库,mavenCentral()实在是慢,可以作为mavenLocal()的有效补充
大漠小北
大漠小北 博主

引用来自“soberh”的评论

用 > gradle dependencies 就可以看到依赖树了
嗯嗯,后来看gradle的命令行是找到了,gradle是很好很强大的。但是在eclipse用习惯了,再开个cmd窗口执行命令就有点不爽了。maven的插件可以展示树形结构,还可以直接屏蔽某个树上的依赖jar,很是方便,而gradle的插件还有待发展。这不是gradle的错,是辅助工具不完善的问题。
语音识别CMUSphinx(2)AndroidDemo实测

安装 安装过程参考 https://cmusphinx.github.io/wiki/tutorialandroid/ build过程过慢可以修改总如下 不过我是第一次使用Android Studio,还有如下疑惑 buildscript中的repositories和allpr...

Seeker_zz
2018/08/30
0
0
个推用户画像产品(个像)Android集成实践

我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下。总的来说效果还不错,这篇文章就为大家介绍一下如何从...

个推
2018/08/07
0
0
个推用户画像产品(个像)Android集成实践

我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下。总的来说效果还不错,这篇文章就为大家介绍一下如何从...

个推
2018/08/07
0
0
SpringBoot025 gradle安装、利用gradle创建SrpingBoot项目

1 gradle安装   技巧01:gradle依赖JDK或者JRE,而且版本至少时1.7   1.1 下载安装包     到gradle官网下载安装包【PS: 也可以利用命令的方式安装,本案例是利用安装包的方式】   ...

CRUD_Architect
2018/08/19
0
0
个推用户画像产品 (个像) Android 集成实践

我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下。总的来说效果还不错,这篇文章就为大家介绍一下如何从...

个推
2018/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

两数的最大公约数

hello,复习一下数学知识! 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 因为之前做一个小功能,需要先计算一下数组的最大公约数,所以我就想记录一下...

woshixin
今天
3
0
学习Node.js的电子书大全

在这里,与大家分享一批很有用的 Node.js 的电子书资源。Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写...

jay603
今天
58
0
《伟大的博弈》读后感作文4100字

《伟大的博弈》读后感作文4100字: 五一小长假,作为工厂员工,没能跟上大家放假的步伐,窝家里两天没出门,逼着自己看完《伟大的博弈》,感触颇多。似乎不能消化,先记录第一遍作为幼稚的见...

原创小博客
昨天
5
0
单点登录-基于Redis+MySQL实现单点登录(SSO)

1. 为什么要用单独登录? 主要便于公司内部多系统统一认证授权管理,一次登录可访问多个跨域系统,也同时更加方便统一管理用户登录(员工离职需要拿掉登录权限、统计所有用户对系统的登录请求...

秋日芒草
昨天
2
0
827. Making A Large Island

思想: 将所有连通的 1 分成一个组,分配编号,然后使用BFS统计1的个数,得到这个组的面积。 遍历格子里所有为 0 的元素,检查四个方向的1所在的组并加上这个组面积。于是得到当前元素为 0 ...

reter
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部