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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:50
下一篇 2023年2月12日 下午4:52

相关推荐

  • 系统流程图是什么

    系统流程图是概括的描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个具体部件(程序、文件、数据库、表格、人工过程等),表达数据在系统各个部件之间流动的情况。 一、系统流程图是什么 系统流程图是概括的描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系…

    2023年4月30日
    72700
  • 为什么爬虫要用python

    主要是因为:1、Python作为动态语言更适合初学者;2、Python更为高效平稳的运行;3、Python有非常强大的支持异步的框架;4、Python更适合开发体量稍小的应用。Python可以让初学者把精力集中在编程对象和思维方法上,而不用去担心语法、类型等。 1、Python作为动态语言更适合初学…

    2023年1月30日
    69000
  • 编程语言中编译型和解释型的区别

    区别是:1、编译型与解释型,两者各有利弊;2、编译性语言不如解释性语言跨平台性好。编译型语言由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序等时都采用它。解释性语言在运行程序的时候才翻译,效率比较低。 1、编译型与解释型,两者各有利弊 编译型语言由于程序执行速度快,同等…

    2023年2月20日
    85100
  • oa办公室

    标题:OA办公室的优势及未来发展趋势 摘要:OA办公室提升工作效率、保障数据安全、支持移动办公、简化流程管理、促进交流合作是它的五大优势。保障数据安全是荟萃各方之需,具体体现在加密数据传输、存储过程中的多层保护措施,及时的安全更新和数据备份机制。这不仅为敏感信息提供了坚固的防线,还赢得了企业和员工的…

    2024年1月11日
    19200
  • 施工进度计划软件哪个好用

    施工进度计划软件好用的有:1、居然装饰施工管理服务端软件;2、施工管理云;3、计划清单;4、我要做计划;5、77进度。居然装饰施工管理服务端软件是一款专门为了工程的实施更加标准化的服务端软件,更是一个专门为施工团队以及工地等量身打造的一个APP。 一、居然装饰施工管理服务端软件 这是一款专门为了工程…

    2023年4月20日
    68300
  • tagged端口和untagged端口的区别

    在网络设备中,特别是在交换机和路由器中,”Tagged”和”Untagged”端口的区别主要涉及到VLAN(虚拟局域网)的处理。主要区别包括以下几点:1、VLAN标签处理;2、网络流量控制;3、适用场景。 1、VLAN标签处理 “Tagge…

    2023年8月4日
    7.0K00
  • 急求!低代码软件该如何选择?

    低代码平台的兴起改变了公司处理软件开发的方式。这些平台使组织能够快速高效地构建应用程序,该应用程序可以利用预设组件和开箱功能。但是,因为有这么多低代码平台可以使用,所以为你的组织选择合适的平台可能是一个挑战。本文将探索如何低代码平台哪家好?如何选择?

    2023年9月21日
    30000
  • 云原生技术在智慧城市建设中的应用

    云原生技术在智慧城市建设方面具备关键作用:1、促进资源高效配置、2、加快服务创新速度、3、提升城市管理智能化水平、4、确保系统安全稳定运行。云原生技术能够根据业务需求动态调配资源,如“2、加快服务创新速度”中的容器化和微服务架构能够使应用开发独立于底层环境,提高部署和迭代的速度,促进智慧城市中各类服…

    2023年12月20日
    25400
  • 项目风险的预测与应对

    本文将聚焦于项目风险的预测与应对,以确保项目管理中能够有效识别潜在挑战并采取相应措施。核心观点包括:1、风险识别与评估、2、定量与定性分析、3、风险回避与缓解策略、4、持续监控与复评。项目风险预测首要任务是识别项目中可能遭遇的各类风险,包括市场变化、法规限制、技术问题、资源约束等。之后,采用定量和定…

    2023年11月30日
    43300
  • 协同工程oa办公系统

    协同工程OA办公系统是一套应用软件,旨在支持组织的日常办公和管理活动。该系统一般具备文档管理、流程审批、协同工作等核心功能。在众多功能中,文档管理系统提供了强大的文档共享及版本控制功能,为组织的知识管理和信息保密提供了坚实的支撑。 一、概述OUN协同工程OA办公系统 办公自动化(Office Aut…

    2024年1月15日
    19200

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部