转自知乎: nonesuccess

通俗的说: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语言写脚本,表达能力还更强。

就这意思。

===
我也是这两天才看了两眼gradle,了解不深。简化版如下:

ant可以自动化打包逻辑。
maven也可以自动化打包,相比于ant,它多做的事是帮你下载jar包。
但是maven的打包逻辑太死板,定制起来太麻烦,不如ant好用。gradle就是又能自动下jar包,又能自己写脚本,并且脚本写起来还比ant好用的这么个东西。

转载于:https://www.cnblogs.com/wancy86/p/7750098.html

Gradle Build Tool相关推荐

  1. gradle wrapper 版本与 android build tool 版本匹配要求

    android build tool 指的就是gradle plugin (gradle插件)两者对用关系 如图:

  2. flutter Gradle build failed to produce an .apk file. xxx\build,but the tool couldn‘t find it.

    Exception: Gradle build failed to produce an .apk file. It's likely that this file was generated und ...

  3. Gradle build failed to produce an .apk file. It‘s likely that this file was generated under XXX

    今天用Flutter点击run按钮准备跑在手机上调试的时候,发现怎么都跑不起来,报错如下: Gradle build failed to produce an .apk file. It's like ...

  4. Flutter 打包出错 报Gradle build failed to produce an .apk file. It’s likely that this file was generated

    **Gradle build failed to produce an .apk file. It's likely that this file was generated under D:\cod ...

  5. Build tool简介

    Build tool Build tool中文构建工具.构建工具能够帮助你创建一个可重复的.可靠的.携带的且不需要手动干预的构建.构建工具是一个可编程的工具,它能够让你以可执行和有序的任务来表达自动化 ...

  6. gradle build connection reset or protocol_version build failure

    为什么80%的码农都做不了架构师?>>>    gradle build connection reset or protocol_version build failure Mav ...

  7. Android Gradle 构建工具(Android Gradle Build Tools)是什么?

    转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...

  8. Jenkins报错‘Gradle build daemon disappeared unexpectedly‘的问题解决

    Jenkins报错'Gradle build daemon disappeared unexpectedly'的问题解决 参考文章: (1)Jenkins报错'Gradle build daemon ...

  9. gradle build running很慢

    gradle build running很慢 本人测试ok: Android Studio Gradle Build Running 特别慢的问题 有位同学说: Gradle Build Runnin ...

最新文章

  1. IOS上传图片的方法
  2. Spring Cloud 服务安全连接
  3. Linux双网卡NAT共享上网
  4. 我的第一次——网站备案
  5. python生成和导入pyc文件
  6. CSS中z-index属性的简单理解
  7. WCF发布到IIS的配置步骤
  8. angularJS之angular-datatable的方法
  9. BZOJ4423: [AMPPZ2013]Bytehattan
  10. 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
  11. Sudoku-Java
  12. 易语言静态连接器提取_正确易语言链接器link.exe,使易语言支持静态编译
  13. 双眼融合训练一个月_视觉融合功能的四种训练方法
  14. python 随机分组
  15. PAT-ADVANCED1118——Birds in Forest
  16. 网易有道招银 前端面经
  17. 售前成本评估你做对了吗?
  18. 【BLE】BQB认证
  19. java汇编代码段,新手求助,跪求各位大神解答,怎么把这段汇编转成java代码
  20. Qt编译过程中报错误“multiple definition of ‘‘”

热门文章

  1. 转】R利剑NoSQL系列文章 之 Hive
  2. run-time cloud server system development recode
  3. HDU 5306 Gorgeous Sequence
  4. POJ2528 计算可见线段(线段树)
  5. 交互搜索中的自然语言理解技术
  6. NFS网络文件共享存储服务器
  7. Java 流(Stream)、文件(File)和IO -- Java ByteArrayOutputStream类
  8. JAVA 实现扫码二维码登录
  9. 既之前的基础,先写个简单的PHP 与数据库 的数据交流
  10. Python内存池管理与缓冲池设计