[Maven实战](1)安装与配置

1. Maven简介

Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。

1.1 依赖管理

Maven提供了中央仓库,能帮助我们自动下载构件。在这个开源的年代里,几乎任何Java应用都会借用一些第三方的开源类库,这些开源类库都可通过依赖的方式引入到项目中来。随着依赖的增多,版本不一致,版本冲突,依赖臃肿等问题都会接踵而至。Maven提供了一个优秀的解决方案,它通过一个坐标系统准确的定位每一个构件(artifact),也就是通过一组坐标就能找到任何一个Java类库(如jar文件)。Maven轻松的解决了那些繁杂的依赖问题。

Maven还能帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述,开发者列表,版本控制系统地址等。

1.2 构建管理

它是一个强大的构建工具,能够帮助我们自动化构建过程,从清理,编译,测试到生成报告,再到打包和部署。我们不需要一遍又一遍的输入命令,一次又一次的点击鼠标,我们要做的是使用Maven配置好项目,输入简单的命令,Maven会帮助我们处理那些繁琐的任务。

2. Maven的安装和配置(windows)

2.1 检查JDK安装

在安装Maven之前,首先要确认已经安装了JDK。Maven可以运行在JDK1.4及以上版本。

打开windows的命令行,运行如下命令来检查JDK的安装:
    
    
    
    
echo %JAVA_HOME%
java -version
1.png
[Maven实战](1)安装与配置_第1张图片
以上命令首先检查了JAVA_HOME是否指向了正确的JDK目录,接着运行java命令。

2.2 下载Maven

下载地址: 点击打开链接
其中包含了针对不同平台的各种版本的Maven下载文件。

2.3 本地安装

将安装文件解压到指定的目录中(例如:D:\Program Files (x86))。然后进行环境变量的设置。
桌面上右击“我的电脑”,点击属性,点击高级系统设置,再点击环境变量,在系统变量中新建一个变量M2_HOME,变量值为Maven的安装目录即D:\Program Files (x86)\apache-maven-3.3.9。然后修改Path系统变量,变量值末尾加上%M2_HOME%\bin。注意:多个值之间分号隔开。
[Maven实战](1)安装与配置_第2张图片
[Maven实战](1)安装与配置_第3张图片
2.png
3.png

检查Maven是否安装成功,打开新的windows的命令行,运行如下命令来检查Maven的安装:
    
    
    
    
echo %M2_HOME%
mvn -v

运行结果如下图所示:
[Maven实战](1)安装与配置_第4张图片
4.png

以上命令首先检查了M2_HOME是否指向了正确的Maven目录,接着运行Maven命令,以检查Windows是否找到正确的mvn执行脚本。

2.4 安装目录分析

2.4.1 M2_HOME

设置M2_HOME环境变量指向Maven的安装目录。该目录的结构和内容:
    
    
    
    
bin
boot
conf
lib
LICENS.txt
NOTICE.txt
README.txt

(1)bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令。
(2)boot:该目录只包含一个文件,以maven 3.3.9 为例,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便设置,Maven使用该框架加载自己的类库。
(3)conf:该目录包含了一个非常重要的文件setting.xml。直接修改该文件,就能在机器上全局的定制Maven的行为。
(4)lib:该目录包含了所有Maven运行时需要的Java类库。
(5)LICENS.txt:该文件记录了Maven使用的软件许可证
(6)NOTICE.txt:该文件记录了Maven包含的第三方软件
(7)README.txt:该文件包含了Maven的简要介绍

2.4.2 ~/.m2

在我这目录是:C:\Users\Administrator\.m2
默认情况下该文件夹放置了Maven本地仓库.m2/repository。所有的Maven构件都被存储到该仓库中,以方便重用。
默认情况下处了repository仓库之外就没有其他目录和文件了,不过大多数Maven用户需要复制M2_HOME/conf/setting.xml文件到~/.m2/setting.xml。

你可能感兴趣的:(Maven实战)