Maven的基础知识


Maven的基础知识

​ 学完本章,你将掌握Maven的一些基础知识。

一、 什么是Maven?

maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。@sirai

二、 Maven的安装及其环境变量配置

  1. 安装:

    进入 [Maven]: https://maven.apache.org/download.cgi 的下载页,选择Binary zip archive那一栏的。下载完毕后解压到工作目录下,即可。

  2. 环境变量配置:

    • 添加全局变量:

      M2_HOME,值是你Maven解压的目录。

    • 增加PATH中的内容:

      在path末尾添加以下值:%M2_HOME%\bin;

  3. 在cmd中输入 mvn help : system

    如果显示了System Properties,Environment Variables 两类信息,则Maven安装成功。

三、 Maven的安装目录

  • bin:保存Maven的可执行命令。其中mvnmvn.bat就是执行Maven工具的命令。

  • boot:该目录只包含一个名为:plexus-classworlds-2.6.0.jar的文件。plexus-classworlds是一个类加载器框架,与默认的Java类加载器 相比,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。我们一般不用管这个文件。

  • conf:保存Maven配置文件的目录,该目录包含settings.xml文件,该文件用于设置Maven的全局行为。通常建议将该文件复制到 用户目录/.m2/目录下,这样可以只设置当前用户的Maven行为。

  • lib:该目录包含所有Maven运行时需要的类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.6.2.jarmaven-reposito-metadata-3.6.2.jar等文件。此外,还包含Maven所依赖的第三方类库。

  • LICENSE、README.txt等说明性文档。

四、设置Maven

1、设置Maven的两种方式:

  • 全局方式:通过Maven安装目录下的conf\settings.xml文件进行设置。
  • 当前用户方式:通过当前用户Home目录的.m2\目录下的settings.xml文件进行设置。

2、可设置的参数:

  • localRepository:该元素的内容是一个路径字符串,该路径字符串用于设置Maven的本地资源库路径。如果用户不设置该参数,Maven本地资源库默认保存在用户Home目录的.m2/repository路径下。可以改成其他位置,比如:E:\work\maven_repo,这样Maven会把所有插件都下载到E:\work\maven_repo目录下。
  • interactiveMode:该参数设置Maven是否处于交互模式——如果将Maven设为交互模式,每当Maven需要用户输入时,Maven都会提示用户输入。但如果将该参数设为false,那么Maven将不会提示用户输入,而是“智能”的使用默认值。
  • offline:该参数设置Maven是否处于离线状态。如果将该参数设置为false,那么当Maven找不到插件、依赖库时,总是会尝试从网络中下载。
  • proxies:该参数用于为Maven服务器设置代理服务器。可保护多个<proxiy…/>,每个可以设置一个代理服务器,包括代理服务器的ID、协议、代理服务器地址、代理服务器端口、用户名、密码等信息。
  • mirrors:该参数用于设置一系列Maven远程资源库镜像。

3、 下载插件

​ 刚刚从官网下载好的Maven是空的,我们就要使用诸如:

mvn install

的命令,这个时候Maven会自动从远程资源库下载大部分核心Maven插件。

五、Maven的约定

  • 源代码应该位于:${basedir}/scr/main/java 路径下。
  • 资源文件应该位于:${basedir}/scr/main/resources 路径下。
  • 测试代码应该位于:${basedir}/scr/test 路径下。
  • 编译生成的class文件应该位于:${basedir}/target/classes 路径下。
  • 项目应该会产生一个JAR文件,并将生成的JAR文件打包放在:${basedir}/target 路径下。

六、 Maven的生命周期

  1. Maven的生命周期是指Maven构建项目包含多个有序的阶段(phase),它可以支持许多不同的生命周期。

  2. Maven生命周期中的元素被称为phase(阶段),每个生命周期有多个阶段组成,各阶段总是按顺序依次执行,Maven默认的生命周期的开始阶段是验证项目的基本完整性,结束阶段是将该项目发布到远程仓库。

  3. Maven包含三个基本的生命周期:clean、default、site。

  4. Maven默认生命周期包含的核心阶段:

    • compile:编译项目。
    • test:单元测试。
    • package:项目打包。
    • install:安装到本地仓库。
    • deploy:部署到远程仓库。

七、 Maven坐标

POM需要为项目提供一个唯一标识,这个标识就被称为Maven标识。Maven坐标由如下四个元素组成:

  • groupId:该项目的开发者的标识名。
  • artifactId:指定项目名。
  • packaging:指定项目打包的类型。
  • version:指定项目的版本。

八、 Maven资源库

Maven资源库用于保存Maven插件,以及第三方框架。通常可分为以下三种:

  1. 本地资源库;
  2. 远程资源库;
  3. 中央资源库(默认)

当Maven需要使用某个插件或JAR包时,Maven搜索顺序是:本地资源库→远程资源库→中央资源库


Author: XiaoXiao
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source XiaoXiao !
评论
  TOC