gradle与maven有什么特殊的区别

gradle与maven的区别有:1、基础配置信息区别;2、依赖管理区别;3、多项目管理区别;4、任务机制区别。maven使用.pom文件,基于XML,gradle使用.gradle文件,基于Groovy,gradle去掉maven中需要固定配置的groupId,artfactId,package等基本参数。

gradle与maven有什么特殊的区别-Worktile社区

1、基础配置信息区别

maven使用.pom文件,基于XML,gradle使用.gradle文件,基于Groovy,gradle去掉maven中需要固定配置的groupId,artfactId,package等基本参数,通过 apply plugin: ‘java’,apply plugin: ‘war’来表示打包方式,也提供sourceCompatibility,version等一些实用的标签。

2、依赖管理区别

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的配置命令。在gradle中使用gradle dependencies 可以查看项目中包的依赖关系。加上-configuration来查看指定阶段的依赖情况,还可以-dependency来查看指定jar的依赖情况。

3、多项目管理区别

实际使用中,往往需要管理的都不是单单一个项目,maven使用依赖,继承,组成的概念,在父模块指定自己的子模块,并且准备一些各个子模块公用的资源,如插件,配置信息等等。将打包的模块与实现具体功能的模块分开的做法来管理多个项目。Gradle在这一方面做得更加清楚,划分更明确,学习gradle的多项目管理也很容易,在eclipse中安装完gradle插件之后,新建一个Gradle工程,选择flat-java-multiproject,生成的工程就是多项目管理一个示例。

Gradle通过settings.gradle文件来指定工程的子项目,在构建的初始化阶段(Initialization),Gradle会根据settings.gradle 文件来判断有哪些子项目被include到了构建中,并为每一个子项目初始化一个Project对象,在构建脚本中通过project(‘:sub-project-name’)来引用子项目对应的Project对象。关于多项目配置有非常多,因此就简述一下常用的配置共享以及配置独享。

4、任务机制区别

Maven相对于ant相比仅仅通过plugin提供任务机制,相比而言自由度小而且很难扩展,每定义一个功能都需要写一个插件,Ant中使用tagret标签的echo来指定命令,gradle使用groovy语言,自带task概念,与ant使用的build文件更加接近。一个Task表示一个逻辑上的执行单元。

延伸阅读:

什么是maven?

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

文章标题:gradle与maven有什么特殊的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37848

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月12日 下午4:50
下一篇 2023年2月12日 下午4:52

相关推荐

  • 企业的预测分析包括哪些

    预测分析的基本内容主要包括1、销售预测;2、利润预测;3、成本预测;4、资金预测。销售预测是指,对未来特定时间内,全部产品或特定产品的销售数量与销售金额的估计。 1、销售预测 销售计划的中心任务之一就是销售预测,无论企业的规模大小、销售人员的多少,销售预测影响到包括计划、预算和销售额确定在内的销售管…

    2023年1月9日
    13900
  • oa办公系统移动终端是什么

    oa办公自动化移动终端是一款以手机为硬件支持的办公移动信 息化系统,其脱离了电脑的办公束缚,直接可以在手机登移动终端设备。上实现无阻碍办公,帮助企业的管理者能随时随地进行公告发布、申请审批、会议通知、接收邮件等操作,真正的实现灵活无界限办公。 oa办公自动化移动终端是一款以手机为硬件支持的办公移动信…

    2023年5月28日
    200
  • 文档翻译软件哪个好用

    好用的文档翻译软件有:一、全能翻译官;二、布谷鸟配音;三、百度翻译;四、WPS;五、万能文字识别。全能翻译官能够处理多种文件格式的翻译,同时还拥有PDF处理、图片转换、CAD转换、压缩等多种实用的工具。 一、全能翻译官 大家应该能从名字上大致了解这款翻译软件,它能够处理多种文件格式的翻译,同时还拥有…

    2023年4月16日
    2400
  • Redis究竟有几种数据结构,分别有什么特点

    Redis的数据结构:1、String字符串;2、List列表;3、Hash哈希;4、Set集合;5、Sorted Set有序集合。String字符串的特点:String是Redis最常使用的数据类型,就只做简单的缓存,通过get和set方法存取,其主要用来做缓存,计算器等工作。 1、String字…

    2023年4月13日
    2600
  • 项目管理的三要素是什么

    项目管理的三要素分别是时间、成本和质量。项目启动时三要素维持的是一个等边三角形,随着项目的推进这个三角形的夹角肯定会变形,因为每一个要素的变化都会影响其他两个元素,导致夹角的变化。 做为项目经理的职责就是掌控这个三角形维持着一个合理的角度。在一个项目中,客户往往关心的是质量;而老板掌控着资源,也就是…

    2022年11月14日
    12500
  • c  面向对象和java面向对象的区别

    区别有: 1、应用不同;2、起源不同;3、开发方法不同;4、编译方式和运行环境不同。C语言多用于计算机底层系统编程,如Windows操作系统、Linux操作系统等。Java语言多用于企业应用开发,特别是互联网应用,因为Java有易学、安全性,可移植、跨平台等特点。 1、应用不同 C 语言是一门工程实…

    2023年2月13日
    3200
  • iaas特点优势有哪些

    iaas特点:1、租赁;2、自助服务;3、动态缩放;4、服务等级;5、许可;6、计量。iaas优势:1、节约成本;2、按需扩展;3、灵活性好;4、专注于业务增长;5、可靠性高;6、支持的应用广泛。使用iaas时企业不需要购置硬件,节约成本。 一、iaas特点 1、租赁 当你使用IaaS服务,购买服务…

    2023年1月15日
    12600
  • php有哪些常用组件

    php常用的组件有:1、ZendGuardLoader;2、ioncube_loaders;3、php-imagick;4、php-memcached;5、xcache。ZendGuardLoader用优化代码的方法来提高php应用程序的执行速度,Zend Guard Loader是加速php的,能…

    2023年1月11日
    12000
  • hdmi和vga的区别

    hdmi和vga的区别有:1、传输效果不同;2、传输介质不同;3、图像传输质量和刷新率不同;4、带宽不同;5、传输技术不同;6、集成度不同等。传输效果不同是指,vga和hdmi一样可以传输音频和视频,但是vga使用的时间更长 ,支持的视频格式也更为广泛。 1、传输效果不同 hdmi是一种接口标准,同…

    2023年3月21日
    5500
  • PHP和Java的主要区别有哪些

    PHP和Java的主要区别有:1、技术层⾯区别;2、开发效率区别;3、开发成本区别;4、安全区别;5、访问数据库速度区别。Java是编程语⾔,功能很强⼤,分⽀众多。PHP吸收了Java等编程语⾔的优点,专注与做互联⽹领域,在web领域有得天独厚的优势。 1、技术层⾯区别 Java是编程语⾔,功能很强…

    2023年2月7日
    8200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部