gradle是什么意思
发布时间:2025-05-20 01:06:30 发布人:远客网络
一、gradle是什么意思
gradle的意思是用于多语言软件开发的自动化构建工具。
一、gradle是以Groovy语言为基础,面向Java应用为主,基于DSL语法的第一个构建集成工具,与ant、maven、ivy有良好的相容相关性。gradle整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。
1、一种可切换的,像maven一样的基于约定的构建框架,却又从不锁住你的装置。
2、强大的支持多工程的构建。强大的依赖管理,提供最大的便利去构建你的工程。全力支持已有的Maven或者Ivy仓库基础建设。
3、支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下。基于groovy脚本构建,其build脚本使用groovy语言编写。具有广泛的领域模型支持你的构建。
Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,是用于Java虚拟机的一种敏捷的动态语言。它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。其是JVM的一个替代语言,使用方式基本与使用Java代码的方式相同。
二、gradle和maven有什么用分别有什么区别
都是自动构建工具,但是完全是两个产品。Maven应该目前在Java企业级开发中占的比重比较大,Gradle是后起之秀,Google的Android Studio主推的就是Gradle.
Gradle和Maven都是项目自动构建工具,编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。整个过程进行自动化操作是很有必要的。
整个过程可以分成以下几个步骤:
执行静态代码分析、生成分析报告
如果你手工去执行每一个步骤无疑效率比较低而且容易出错,有了自动化构建你只需要自定义你的构建逻辑,剩下的事情交给工具去完成。
虽然两者都是项目工具,但是maven现在已经是行业标准,Gradle是后起之秀,很多人对他的了解都是从android
studio中得到的,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数,比如在Maven中你要引入一个依赖:
<kaptcha.version>2.3</kaptcha.version>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
<classifier>jdk15</classifier>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
然后我将其转换成Gradle脚本,结果是惊人的:
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
注意配置从原来的28行缩减至7行!这还不算我省略的一些父POM配置。依赖的groupId、artifactId、 version,scope甚至是classfier,一点都不少。较之于Maven或者Ant的XML配置脚本,Gradle使用的Grovvy脚本杀伤力太大了,爱美之心,人皆有之,相比于七旬老妇松松垮垮的皱纹,大家肯定都喜欢少女紧致的脸蛋,XML就是那老妇的皱纹。
Gradle给我最大的有点是两点。其一是简洁,基于Groovy的紧凑脚本实在让人爱不释手,在表述意图方面也没有什么不清晰的地方。其二是灵活,各种在Maven中难以下手的事情,在Gradle就是小菜一碟,比如修改现有的构建生命周期,几行配置就完成了,同样的事情,在Maven中你必须编写一个插件,那对于一个刚入门的用户来说,没个一两天几乎是不可能完成的任务。
三、gradle有哪些优势和不足
1.gradle考虑到maven库的价值,在jar包管理上完全支持maven Repository,很多属性一看就能反应过来maven中对应的是什么标签,降低maven到gradle的迁移难度,并在构建方面改善了很多maven的不足,
2.radle对比maven更好的面向ant用户,使用maven时,虽然能通过plugin来跑ant的命令,但是maven在任务实现主要靠的是插件以及自身的固定框架,Gradle在定义任务方面思想与ant非常相似,做了很好的集成。
maven使用.pom文件,基于XML,gradle使用.gradle文件,基于Groovy,gradle去掉maven中需要固定配置的groupId,artfactId,package等基本参数,通过 apply plugin:'java',apply plugin:'war'来表示打包方式,也提供sourceCompatibility,version等一些实用的标签。
Gradle的jar包管理支持maven下Repository方式,也支持Ant的Ivy方式,由于maven的Repository已经非常成熟,gradle在兼容Repository做得非常方便,定义maven的repository:
maven通过groupId、name和version到配置的Repository里寻找指定依赖中的Jar包。Gradle的生命周期更为复杂,但也支持Maven依赖中的构建生命周期,compile、runtime、testCompile和testRuntime分别对应项目不同阶段的依赖。并且还简化maven的配置命令。