如何通俗地理解 Gradle?

简介: 作者:nonesuccess链接:https://www.zhihu.com/question/30432152/answer/79547641来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。你都说了要通俗的理解,那就用不着学习什么理论了,通俗着来就是了。通俗的说:gradle是打包用的。你觉得解决你的问题了吗?如果没解决,那是你的问题提得不够好。比如我猜
作者:nonesuccess
链接:https://www.zhihu.com/question/30432152/answer/79547641
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你都说了要通俗的理解,那就用不着学习什么理论了,通俗着来就是了。

通俗的说:gradle是打包用的。

你觉得解决你的问题了吗?如果没解决,那是你的问题提得不够好。比如我猜你应该提:为什么要打包发布,打包发布有几种常见方法,为什么这些常见方法中要选gradle,等等。

针对我猜的这些内容,通俗的讲是这样的:

以在eclipse里面写java程序为例

为什么需要打包:
最初写完了,直接右键run就可以了。但是程序写完了毕竟是要发布到服务器上或者给别人用的,你第一不可能让所有要运行的人都装个eclipse,第二不可能把源代码公布给所有人。所以你需要把你的代码发布成二进制形式,让其它环境方便运行,这就是打包。

为什么用ant
打包的时候要做很多事,比如说配置文件中的用户名和密码,你本地开发和程序实际运行时的内容肯定不一致,所以需要有两个文件,开发的时候用一个,实际运行的时候用一个。这样每次打包的时候都要重复的做这些事,ant可以让你用xml的形式把这些事情写成脚本,然后自动运行。

为什么用maven
你的项目要用很多jar包,比如你写日志要用个log4j吧,连数据库要用个connector吧。这年头写程序不用个spring都不好意思出门,下载下来的spring包打开一看,密密麻麻的好几十个jar,不知道用哪个不用哪个。而且,即便是你一狠心把这些jar包都放进来,很大可能性还是不能运行,因为还要依赖其它的jar包。哪天想升级个spring小版本,所有jar包都要重来一遍,你也不记得哪些是由于spring引进来的jar包了。
所以有了maven,你只要配置一下说我要用spring 3,所有jar包都给你下载好了,你直接运行就行了。赶明儿想升级版本,直接把3改成4,新的jar包也给你下载好了。

然后?
用了maven,jar包是方便了,但我打包的时候还是有好多事要做啊,然后你会发现maven实在是不知道怎么做这些事,于是开始怀念ant。
gradle就是又能干maven的活,又能干ant的活,用groove语言写脚本,表达能力还更强。

就这意思。

目录
相关文章
|
7月前
|
Android开发
gradle 变体打包 productFlavors
gradle 变体打包 productFlavors
143 5
|
开发框架 前端开发 Java
JAVA-带您弄清创建Maven项目-Archetype里那些看完茫然不解的骨架
JAVA-带您弄清创建Maven项目-Archetype里那些看完茫然不解的骨架
178 0
|
缓存 开发者 Windows
开发这么久,gradle 和 gradlew 啥区别、怎么选?
开发这么久,gradle 和 gradlew 啥区别、怎么选?
开发这么久,gradle 和 gradlew 啥区别、怎么选?
|
Java Windows Web App开发
JNA 实际开发中若干问题解决方法
JNA 实际开发中若干问题解决方法
9426 0
|
Java 测试技术 项目管理
关于Maven,我是如何理解并使用的
Maven是一个构建工具,这个构建工具能够帮助你更好的管理包的依赖、还能够为你实现项目的热部署、还能为你运行所有的测试用例、还能够为你项目的打包、发布、还能够实现项目的多模块构建。本文谈...
142 0
|
开发工具 Android开发
gradle编译打包过程分析之ProcessAndroidResources
引入源码 首先,如何查看gradle源码,我们在项目里依赖com.android.tools.build:gradle即可
295 0
|
Java Maven
印象最深的一个bug-maven父子模块依赖关系
印象最深的一个bug-maven父子模块依赖关系
1191 0
|
缓存 Java jenkins
Gradle 编译速度提升 70%!怎么做到的?
Java 应用部署到预发通常都要等待漫长的编译打包时间,本文将为大家讲解提升编译速度的方法。
1895 0
Gradle 编译速度提升 70%!怎么做到的?