Maven的安装
下载 Apache Maven
下载地址:http://maven.apache.org/download.cgi
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gk7jW62r-1580200195443)(https://funtl.com/assets/Lusifer1511451890.png)]
下载 Maven 的 zip 文件,例如: apache-maven-3.5.2-bin.zip,将它解压到你要安装 Maven 的文件夹。假设你解压缩到文件夹 – D:\apache-maven-3.5.2
添加 MAVEN_HOME
添加 MAVEN_HOME
环境变量到 Windows 环境变量,并将其指向你的 Maven 文件夹。
添加到环境变量 - PATH
在系统变量里面的path,点击编辑。
验证
在CMD中使用命令:mvn -version
输出:
C:\Users\Lusifer>mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: D:\apache-maven-3.5.2\bin\..
Java version: 1.8.0_152, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_152\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
maven安装成功!
Maven 本地仓库配置
找到apache-maven-3.6.3下的Conf下的Settings.xml 打开并找到54行上下,
找到localRepository
标签在中间,更新本地仓库存储地址。
Maven 中央仓库
概述
当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 http://repo1.maven.org/maven2/ 查找下载。
使用 MVNrepository 搜索:https://mvnrepository.com/ 可获取Pom.xml的依赖关系(即依赖标签对)。
Maven 依赖机制
概述
在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?
传统方式
- 访问 http://logging.apache.org/log4j/
- 下载 Log4j 的 jar 库
- 复制 jar 到项目类路径
- 手动将其包含到项目的依赖
- 所有的管理需要一切由自己做
如果有 Log4j 版本升级,则需要重复上述步骤一次。
Maven 的方式
- 你需要知道 log4j 的 Maven 坐标,例如:
<artifactId>log4j</artifactId>
<version>1.2.17</version>
- 它会自动下载 log4j 的 1.2.17 版本库
- 声明 Maven 的坐标转换成 pom.xml 文件
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
- 当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库
- 所有由 Maven 管理
解释说明
看看有什么不同?那么到底在 Maven 发生了什么?当建立一个 Maven 的项目,pom.xml 文件将被解析,如果看到 log4j 的 Maven 坐标,然后 Maven 按此顺序搜索 log4j 库:
- 在 Maven 的本地仓库搜索 log4j
- 在 Maven 中央存储库搜索 log4j
- 在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)
Maven 依赖库管理是一个非常好的工具,为您节省了大量的工作
Maven POM
概述
POM 代表项目对象模型。它是 Maven 中工作的基本单位,这是一个 XML 文件。它始终保存在该项目基本目录中的 pom.xml 文件。
POM 包含的项目是使用 Maven 来构建的,它用来包含各种配置信息。
POM 也包含了目标和插件。在执行任务或目标时,Maven 会使用当前目录中的 POM。它读取POM得到所需要的配置信息,然后执行目标。部分的配置可以在 POM 使用如下:
- project dependencies
- plugins
- goals
- build profiles
- project version
- developers
- mailing list
创建一个POM之前,应该要先决定项目组(groupId),它的名字(artifactId)和版本,因为这些属性在项目仓库是唯一标识的。
POM 的例子
<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.lusifer</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<project>
- 要注意的是,每个项目只有一个 POM 文件
- 所有的 POM 文件要项目元素必须有三个必填字段:
groupId,artifactId,version
- 在库中的项目符号是:groupId:artifactId:version
pom.xml
的根元素是 project,它有三个主要的子节点。
节点 | 描述 |
---|---|
groupId | 这是项目组的编号,这在组织或项目中通常是独一无二的。 例如,一家银行集团 com.company.bank 拥有所有银行相关项目。 |
artifactId | 这是项目的 ID。这通常是项目的名称。 例如,consumer-banking 。 除了 groupId 之外,artifactId 还定义了 artifact 在存储库中的位置。 |
version | 这是项目的版本。与 groupId 一起使用,artifact 在存储库中用于将版本彼此分离。 例如:com.company.bank:consumer-banking:1.0 ,com.company.bank:consumer-banking:1.1 |
关于版本
语义化版本规范
1.0.0 第一个1指第一个版本,一般软件结构发生了变化,就是大变化,如传统的jsp+servlet->SSM 就是版本升级了
1.0.1 最后一个数字是指对上一版本修复 BUG的个数
1.0.1 中间数字指 对功能进行了添加和减少