Maven与Gradle学习简要笔记

Maven与Gradle学习简要笔记

参考:https://blog.csdn.net/unniversky/article/details/84756115

1. Gradle基本介绍

  • Gradle是一种以Groovy语言为基础的自动化构建工具
  • 自动化构建本质上也是一种程序,我们开始编译时就启动这个程序,然后读取我们在 gradle 文件中配置的参数来实例化各个类,然后按照顺序依次执行对应的任务即可完成整个构建任务。
  • 所有build.gradle文件,或者其他后缀为 gradle 的文件其实就是个配置文件,就好像 xml 一样,我们在 gradle 文件中修改各种配置参数,Gradle 通过这些参数来实例化 Project 等等就像构造器一样,只要理解了这点学习 Gradle 就会变得很容易。

2. Maven和Gradle区别

​ Java中主要有三大构建工具:Ant、Maven和Gradle。Ant用的比较少、Maven用的相对普遍,而Gradle的发展则将是未来的一种趋势。使用Maven需要有pom.xml文件,使用Gradle需要有一个对应的build.gradle文件。

​ Maven的主要功能主要分为依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。这里通过这五个方面介绍两者的不同:

  1. 依赖管理系统

    1. 在Maven的管理体系中,用GroupID、ArtifactID和Version组成的Coordination唯一标识一个依赖项。任何基于Maven构建的项目自身也必须定义这三项属性,生成的包可以是Jar包,也可以是War包或Ear包
    2. 同时,存储这些组件的仓库有远程仓库和本地仓库之分,远程仓库可以是使用世界公用的central仓库,也可以使用Apache Nexus自建的私有仓库;本地仓库则在本地计算机上。通过Maven安装目录下的settings.xml文件可以配置本地仓库的路径,以及采用的远程仓库地址。Gradle在设计时沿用了Maven这种依赖管理体系,同时也引入了改进,让依赖变得更加简洁。
  2. 多模块构建

    1. 在面向服务的架构中,通常将一个项目分解为多个模块。在Maven中需要定义parent POM(Project Object Model)作为一组module的通用配置模型,在POM文件中可以使用标签来定义一组子模块。parent POM中的build配置以及依赖配置会自动继承给子module。
    2. Gradle也支持多模块构建,在parent的build.gradle中可以使用allprojects和subprojects代码块分别定义应用于所有项目或子项目中的配置。对于子模块中的定义放置在settings.gradle文件中,每一个模块代表project的对象实例,在parent的build.gradle中通过allproject或subprojects对这些对象进行操作,相比Maven更显灵活。
  3. 一致的项目结构

    1. Maven指定了一套项目目录结构作为标准的java项目结构,Gradle也沿用了这一标准的目录结构。如果在Gradle项目中使用了Maven项目结构的话,在Gradle中无需进行多余的配置,只需在文件中包括apply plugin:‘java’,系统会自动识别source、resource、test source、test resource等相应资源。
    2. 同时,Gradle作为JVM上的构建工具,也支持Groovy、Scala等源代码的构建,同样功能Maven通过一些插件也能达到目的,但配置方面Gradle更灵活。
  4. 一致的构建模型

    1. 为了解决Ant中对项目构建缺乏标准化的问题,Maven设置了标准的项目周期,构建周期:验证、初始化、生成原始数据、处理原始数据、生成资源、处理资源、编译、处理类、生成测试原始数据、处理测试原始数据、生成测试资源、处理测试资源、测试编译、处理测试类、测试、预定义包、生成包文件、预集成测试、集成测试、后集成测试、核实、安装、部署。但这种构建周期也是Maven应用的劣势。因为Maven将项目的构建周期限制过严,无法在构建周期中添加新的阶段,只能将插件绑定到已有的阶段上。而Gradle在构建模型上非常灵活,可以创建一个task,并随时通过depends建立与已有task的依赖关系。
  5. 插件机制

    1. 两者都采用了插件机制,Maven是基于XML进行配置,而在Gradle中更加灵活。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程哥哥吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值