01.Maven简介

Maven简介

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

在多个开发团队一起工作时,Maven可以按照标准设置在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可以重复使用,Maven让开发人员的工作更轻松,同事创建报表、检查、构建和测试自动化设置。

Maven提供的管理有:

标准化的目录结构:Maven的项目目录结构是固定的,和具体的开发环境无关(eclipse和idea有自己的默认项目目录结构)。

Maven安装

在Windows安装时,需要下载Maven的zip文件,并解压到想要的目录中。

安装要求

必须配置好JavaSDK的路径,和Java_HOME环境变量。

在Path中添加Maven的bin目录。注意:请尽量使用 JDK 1.8 及以上版本

JDK 和 JAVA_HOME

确保已安装 JDK,并设置 JAVA_HOME 环境变量到 Windows 环境变量。

下载 Apache Maven

下载地址:maven.apache.org/download.cg…

下载 Maven 的 zip 文件,例如: apache-maven-3.5.2-bin.zip,将它解压到你要安装 Maven 的文件夹。假设你解压缩到文件夹 – D:\apache-maven-3.5.2

注意:在这一步,只是文件夹和文件,安装不是必需的。

添加 MAVEN_HOME

添加 MAVEN_HOME 环境变量到 Windows 环境变量,并将其指向你的 Maven 文件夹。

添加到环境变量 - PATH

验证

使用命令: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 的本地资源库是用来存储所有项目的依赖关系(插件 Jar 和其他文件,这些文件被 Maven 下载)到本地文件夹。很简单,当你建立一个 Maven 项目,所有相关文件将被存储在你的 Maven 本地仓库。

默认情况下,Maven 的本地资源库默认为 .m2 目录文件夹:

Maven 中央仓库

概述

当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 repo1.maven.org/maven2/ 查找下载。

使用 MVNrepository 搜索:mvnrepository.com/

Maven 依赖机制

概述

在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?

Maven POM

POM是Maven和项目之间的中间件。

基本结构:

<?xml version="1.0" encoding="UTF-8"?>
<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.bailiang</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <dependecies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifectId>
            <version>1.2.17</version>
        </dependency>
    </dependecies>

</project>

说明

节点 描述 groupId 项目组的编号,在组织或项目中通常是唯一的,和Java包名命名规则相同 artifactId 项目的编号,通常是项目名称。定义了artifact在存储库中的位置 version 项目的版本号 packaging 项目发布时的打包方式,war或jar

Maven 插件

插件类型

Maven 提供以下两种类型插件:

类型 描述

以下是一些常见的插件列表:

Maven 快照

说明

快照版:必须使用 X.Y.Z-SNAPSHOT的格式,如果依赖的是快照版,则刷新Maven时,会自动下载最新的代码;如果没有-SNAPSHOT,而是任何其他字符,都是发行版,发行版需要手动修改版本号来加载最新代码。

语义化版本规范: a.b.c

如果想要快照版自动更新最新代码,必须设置Maven的Always update snapshots,如下图

Maven 常用命令

本章节只提供 Maven 使用时的一些基本命令

清除产生的项目

编译源代码

打包

只打包不测试(跳过测试)

安装到本地仓库

源码打包

web项目的目录结构

{myproject}
---->[src]
    |--->[main]
        |--->[java] 存放所有源码
            |--->各个package
        |--->[resources] 存放资源文件,如xml配置文件
            |--->spring-context.xml 
            |--->spring-mvc.xml
            |--->其他配置文件
        |--->[webapp] 存放web文件,如jsp
            |--->[WEB-INF]
                |--->web.xml web配置文件
            |--->index.jsp 首页
    |--->[test]
        |--->[java] 测试
---->pom.xml Maven项目配置文件