郑州怎样建设公司网站,给漫画网站做推广,网站改版的方式大致为,湖州网站建设制作前言#xff1a; 既然我们已经使用Maven 来完成对项目的构建#xff0c;为什么还要使用Gradle 进行项目的构建#xff1b;gradle和maven都可以作为java程序的构建工具#xff0c;但两者还是有很大的不同之处的#xff1a;1.可扩展性#xff0c;gradle比较灵活#xff0c…前言 既然我们已经使用Maven 来完成对项目的构建为什么还要使用Gradle 进行项目的构建gradle和maven都可以作为java程序的构建工具但两者还是有很大的不同之处的1.可扩展性gradle比较灵活maven的灵活性就差一些但是maven的项目比较容易看懂并且上手简单。2.性能比较gradle比maven运行得快。
1 Gradle 介绍 Gradle是一种构建工具它可以帮你管理项目中的依赖、编译、打包、部署等。纵观历史总共出现了三种构建工具分别是AntMavenGradle。Ant属于上古时期它可以自动化打包从而解放了人力。Maven属于现代社会不仅可以自动化打包相比于Ant它还能帮你下载Jar包和管理Jar包。但是Maven的打包逻辑太死板定制起来太麻烦不如Ant灵活。这个时候Gradle登场了它属于后现代社会既能自动下载和管理Jar包又能自己写脚本并且脚本写起来还比Ant还好用。
Ant和Maven都是基于XML的构建工具而Gradle是用Groovy编写的构建工具Gradle通过编写一个名为build.gradle的脚本文件对项目进行设置再根据这个脚本对项目进行构建。Gradle脚本本质上就是Groovy脚本它充分利用了Groovy的语法糖例如省略方法参数括号和省略句尾分号等让代码看起来十分清爽。相对Groovy脚本的灵活强大Ant和Maven使用XML来做配置则显得呆板很多。本项目以gradle-7.5.1 为例
2 配置Gradle 环境变量
2.1 下载并解压 Gradle下载地址 https://services.gradle.org/distributions/gradle-7.5.1-bin.zip
2.2 配置环境变量 (1) 配置home
GRADLE_HOME
D:\java\gradle-7.5.12配置path
%GRADLE_HOME%\bin2.3 验证 命令行输入
gradle -v可以看到gradle 的版本 3 Idea配置 gradle
Gradle user home 配置仓库的地址 4 常用的命令
assemble 组合项目的输出在java中多用于生成jar、war包而在android中用于生成apkcheck 用户项目的检查任务比如说lintconnectedCheck 用于连接设备的检查build 这种任务会执行assemble与check的任务输出jar包或者war包clean 这个task清空项目的所有输出。
5 Maven 和Gradle 的比较
可扩展性 Google选择gradle作为android的构建工具不是没有理由的其中一个非常重要的原因就是因为gradle够灵活。一方面是因为gradle使用的是groovy或者kotlin语言作为脚本的编写语言这样极大的提高了脚本的灵活性但是其本质上的原因是gradle的基础架构能够支持这种灵活性。 你可以使用gradle来构建native的C/C程序甚至扩展到任何语言的构建。相对而言maven的灵活性就差一些并且自定义起来也比较麻烦但是maven的项目比较容易看懂并且上手简单。 所以如果你的项目没有太多自定义构建需求的话还是推荐使用maven但是如果有自定义的构建需求那么还是投入gradle的怀抱吧。性能比较 虽然现在大家的机子性能都比较强劲好像在做项目构建的时候性能的优势并不是那么的迫切但是对于大型项目来说一次构建可能会需要很长的时间尤其对于自动化构建和CI的环境来说当然希望这个构建是越快越好。 Gradle和Maven都支持并行的项目构建和依赖解析。但是gradle的三个特点让gradle可以跑的比maven快上一点 (1)增量构建 gradle为了提升构建的效率提出了增量构建的概念为了实现增量构建gradle将每一个task都分成了三部分分别是input输入任务本身和output输出。 (2)构建缓存 gradle可以重用同样input的输出作为缓存大家可能会有疑问了这个缓存和增量编译不是一个意思吗? 在同一个机子上是的但是缓存可以跨机器共享.如果你是在一个CI服务的话build cache将会非常有用。因为developer的build可以直接从CI服务器上面拉取构建结果非常的方便。 (3)Gradle守护进程 gradle会开启一个守护进程来和各个build任务进行交互优点就是不需要每次构建都初始化需要的组件和服务。 同时因为守护进程是一个一直运行的进程除了可以避免每次JVM启动的开销之外还可以缓存项目结构文件task和其他的信息从而提升运行速度。
参考 Gradle用户指南 中文版