maven 概述
POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个 XML 文件,包含了项目
的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
项目依赖
插件
执行目标
项目构建 profile
项目版本
项目开发者列表
相关邮件列表信息
在创建 POM.xml 之前,我们首先需要描述项目组 (groupId), 项目的唯一 ID。
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志 -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的项目名称 -->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0</version>
</project>
maven 坐标的主要组成
Maven 项目坐标是唯一的标识,有以下组成:
groupId:定义当前 maven 项目属于哪个项目
artifactId:定义实际项目中的某一个模块
version:定义当前项目的当前版本
根据这些坐标,在 maven 库中可以找到唯一的 jar 包
例如:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
Maven dependencies 引入外部依赖
<!--引入项目中使用的第三方 jar 包-->
<dependencies>
<!--引入 junit 版本 4.11 测试 jar 包,并声明是测试的范围-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--引入 hadoop-client 版本是 3.1.2jar 包-->
<dependency> <groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.2</version> </dependency>
<!-- 如需要再增加 jar 包 ,再增加<dependency>即可-->
</dependencies>
<dependency>中的<scope>的选值
在 POM 4 中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用 5 个值:
compile,默认值,缺省值,适用于所有阶段,会随着项目一起发布。
provided,类似 compile,期望 JDK、容器或使用者会提供这个依赖。如 servlet.jar。
runtime,只在运行时使用,如 JDBC 驱动,适用运行和测试阶段。
test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system,类似 provided,需要显式提供包含依赖的 jar,Maven 不会在 Repository 中查找它。
整理自老师的上课内容,若有错误望指正,侵删。