Maven的基础认识+构建+四大特性

在这里插入图片描述

Maven

一、 Maven 简介

​ 作为 Apache 组织中的一个颇为成功的开源项目, Maven 主要服务于基于 java 平台的项目构建, 依赖管理和项目信息管理。 无论是小型的开源类库项目, 还是大型的企业级应用; 无论是传统的瀑布式开发, 还是流行的敏捷开发, Maven 都能大显身手。

二、 项目构建

​ 总结一下, 我们会发现, 除了编写源代码, 我们每天有相当一部分时间花在了编译,运行单元测试, 生成文档, 打包和部署等繁琐且不起眼的工作上, 这就是构建。

三、 项目构建工具

Ant 构建

​ 最早的构建工具, 基于 IDE, 大概是 2000 年有的, 当时是最流行 java 构建工具,不过它的 XML 脚本编写格式让 XML 文件特别大。 对工程构建过程中的过程控制特别好。

Maven【 JAVA】

项目对象模型, 通过其描述信息来管理项目的构建, 报告和文档的软件项目管理工具。 它填补了 Ant 缺点, Maven 第一次支持了从网络上下载的功能, 仍然采用 xml 作为配置文件格式。 Maven 专注的是依赖管理, 使用 Java 编写。

Gradle

​ 属于结合以上两个的优点, 它继承了 Ant 的灵活和 Maven 的生命周期管理, 它最后被 google 作为了 Android 御用管理工具。 它最大的区别是不用 XML 作为配置文件格式, 采用了 DSL 格式, 使得脚本更加简洁。

目前市面上 Ant 比较老, 所以一般是一些比较传统的软件企业公司使用, Maven使用 Java 编写, 是当下大多数互联网公司会使用的一个构建工具, 中文文档也比较齐全,gradle 是用 groovy 编写, 目前比较新型的构建工具一些初创互联网公司会使用, 以后会有很大的使用空间.

四、 Maven 四大特性

依赖管理系统、 多模块构建、 一致的项目结构 、 一致的构建模型和插件机制。

I.依赖管理系统( jar 项目的多模块)

​ Maven 为 Java 世界引入了一个新的依赖管理系统 jar 包管理 jar 升级时修改配置文件即可。 在 Java 世界中, 可以用 groupId、 artifactId、 version 组成的Coordination( 坐标) 唯一标识一个依赖。 任何基于 Maven 构建的项目自身也必须定义这三项属性, 生成的包可以是 Jar 包, 也可以是 war 包或者 jar 包。 一个典型的依赖引用
如下所示:

<dependency>
	<groupId>javax.servlet</groupId> //包名/项目名
	<artifactId>javax.servlet-api</artifactId> //某一模块名
	<version>3.1.0</version>	//所需要jar的版本
</dependency>

注意:

​ 1)坐标属性的理解: Maven 坐标为各种组件引入了秩序, 任何一个组件都必须明确定义自己的坐标。

​ 2)groupId: 定义当前 Maven 项目隶属的实际项目-公司名称

​ 3)artifactId(工程名): 该元素定义实际项目中的一个 Maven 模块-项目名

​ 4)version: 该元素定义 Maven 项目当前所处的版本。

II. 多模块构建

​ 项目复查时 dao service controller 层分离将一个项目分解为多个模块已经是很通用的一种方式。在 Maven 中需要定义一个 parent POM 作为一组 module 的聚合 POM。在该 POM 中可以使用 标签来定义一组子模块。 parent POM 不会有什么实际构建产出。 而 parent POM 中的 build 配置以及依赖配置都会自动继承给子 module。

III. 一致的项目结构( 不同的 IDE 项目结构是一致)

​ Ant 时代大家创建 Java 项目目录时比较随意, 然后通过 Ant 配置指定哪些属于source,那些属于 testSource 等。而 Maven 在设计之初的理念就是 Conversion overconfiguration( 约定大于配置)。 其制定了一套项目目录结构作为标准的 Java 项目结构,解决不同 ide 带来的文件目录不一致问题。

IV. 一致的构建模型和插件机制( 通过 pom 配置 tomcat、 jetty 插件)
<plugin>
	<!--这里是所有添加插件配置的地方-->
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>maven-jetty-plugin</artifactId>
	<version>6.1.25</version>
	<configuration>
	<scanIntervalSeconds>10</scanIntervalSeconds>
	<contextPath>/test</contextPath>
</configuration>
</plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘大猫.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值