前言
Maven是一个项目管理工具,它包含了:项目对象模型 (POM,Project Object Model),项目生命周期(Project Lifecycle),依赖管理系统(Dependency Management System)和各种插件。插件主要用来实现生命周期各个阶段(phase)的目标(goal)。
Maven 是使用 Java 语言编写的,因此它和 Java 一样具有跨平台性,这意味着无论是在 Windows ,还是在 Linux 或者 Mac OS 上,都可以使用相同的命令进行操作。
在 Maven 出现之前,Java 世界的项目管理工具一直由 Ant 统治着。而在此之后,又有 Gradle 逐渐在 Android 项目中作为配套打包工具流行,不用XML作为配置文件格式,采用了DSL格式。
较传统项目手动引入大量Jar包,带来的版本冲突等问题;Maven通过简单的配置使你从繁琐工作中解放出来。总而言之,Maven 简化并标准化了项目构建过程。它将项目的编译,生成文档,创建报告,发布,部署等任务无缝衔接,构建成一套完整的生命周期。
什么是项目构建?
简单地说,构建就是软件项目生产的整个过程,这个过程应该包括:
- 文档和代码的生成(有些项目会使用代码自动生成工具,比如数据库访问代码的逆向工程)
- 代码的编译、测试和打包
- 打包好的代码进行分发或者部署
项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 Maven进行管理,这个过程称为构建。
Maven安装
再安装Maven之前先确认已经安装好了JDK,如果没有安装点击下载,安装后,输入java -version
命令出现对应版本号即可,如图所示:
先进入Maven官网:https://maven.apache.org/download.cgi,如图所示,点击下载(Linux下载.gz
文件,Windows下载.zip
文件)
Windows安装
解压后,如图:
简单介绍下,它们每个文件的含义:
- bin目录:包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。比如:
mvn -v
命令可以查看mvn的版本信息。(存放可执行程序目录) - boot目录:提供了更加丰富的语法以方便配置,Maven使用该框架加载自己的类库。(存放引导程序目录)
- conf目录:存放配置文件,比如:settings.xml文件,然后修改该文件,在用户范围定制Maven的行为。(存放配置文件目录)
- lib目录:存放Maven程序,项目本身的模块Jar包和项目中依赖的Jar包。(存放所需Jar包目录)
解压后开始配置 环境变量 ,步骤如图所示:
然后找到系统变量中 Path变量,然后配置M2_HOME变量指定到bin目录下(%M2_HOME%\bin),这样就可以使用对应的命令,步骤如图所示:
然后验证是否配置成功,打开命令窗口(cmd),输入mvn -v
或mvn -version
命令,执行结果如下所示,说明配置成功:
Linux安装
你可以将文件先下载本地后,再上传到服务器,或者使用命令wget
命令下载:
wget --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
执行解压命令:
tar -zxvf apache-maven-3.8.6-bin.tar.gz
可以看到当前目录生成了一个文件夹
然后去配置环境变量,再/etc/profile
目录下
使用:wq
命令保存并退出,然后重新刷新配置文件:
source /etc/profile
执行mvn -v
查看是否生效(如果配置未生效,查看环境变量是否有误)。
设置镜像
国内开发人员由于网络原因,直接从中央仓库下载构件时,速度较慢或不稳定,我们通常会使用中央仓库的国内镜像站来解决该问题。
如果一个仓库 A 可以提供另一个仓库 B 的所有内容,那么就可以认为仓库 A 是仓库 B 的一个镜像。即仓库 B 中的任何一个构件都能从它的镜像中获取。
阿里云镜像地址
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
华为云镜像地址
<mirror>
<id>huaweicloud</id>
<name>mirror from maven huaweicloud</name>
<mirrorOf>central</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
在 Maven 安装目录中 setting.xml 文件的 mirrors 节点中,使用 mirror 标签添加镜像的相关信息即可,如图所示:
idea集成Maven
日常开发中会使用不同的开发工具,无论idea还是eclipse等。
配置
下面以idea开发工具为例,进行讲解。idea本身自带有默认的maven,但是不能满足项目需求灵活性,所以要换成我们自己的maven,步骤如图所示:
创建Maven项目
步骤如图所示:
项目结构
Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。结构图如下所示:
简单介绍下每个文件的含义:
- project目录:项目,包含代码、编译文件、pom.xml文件。
- src目录:存放源代码和资源文件的目录。
- src/main/java目录:存放项目源码。
- src/main/resources目录:用于存放项目资源文件,比如:css、js、html、propert文件 等。
- src/test/java目录:存放项目单元测试源码。
- src/test/resources目录:存放测试资源文件。
- target目录:项目输出位置,存放编译后的 class 文件、Jar包等。
- pom文件:项目核心配置文件,包含依赖的Jar包的坐标等。
章节目录
下一章:项目管理工具:Maven(中)