文档章节

maven用户试用gradle

大漠小北
 大漠小北
发布于 2015/01/20 11:00
字数 1079
阅读 4297
收藏 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)

waylau
waylau
gradle 中文文档 https://github.com/waylau/books-collection
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

没有更多内容

加载失败,请刷新页面

加载更多

带你看数据挖掘与机器学习-厦大EDP上课出勤预测

带你看数据挖掘与机器学习-厦大EDP上课出勤预测 标签: 数据挖掘 特征工程 机器学习 出勤预测 write by xmhexi 2019/3/22 内容提要 首先说明本文是一篇科普文章,通过一个实际案例,帮助理解什...

xmhexi
今天
43
0
IOS  学习记录

1.StackView=>IOS 9及以上支持 2.布局方式: AutoLayout / StackView 堆布局 (线性布局) 3.屏幕适配 (资源分辨率、设计分辨率、屏幕分辨率) Size Class技术 可以针对 屏幕的方向进行设置...

萨x姆
今天
4
0
第四次工业革命:自主经济的崛起

https://36kr.com/p/5170370.html

shengjuntu
昨天
3
0
Cloud Native 与12-Factor

12-Factor(twelve-factor),也称为“十二要素”,是一套流行的应用程序开发原则。Cloud Native架构中使用12-Factor作为设计准则。 12-Factor 的目标在于: 使用标准化流程自动配置,从而使...

waylau
昨天
10
0
java多线程2

“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在线程安全问题。这是因为方法内部的变量都是私有造成的。 synchronized 获取的都是对象锁。如果多个线程访问多个...

一滴水穿石
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部