Maven简介

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM(Project Object Model):项目对象模型

csvschema maven依赖 maven配置依赖库_csvschema maven依赖

Maven的作用

  1. 项目构建:提供标准的、跨平台的自动化项目构建
  2. 依赖管理:方便快捷的管理项目依赖资源(jar包),避免资源的版本冲突
  3. 统一的开发结构:提供标准的、统一的项目结构

Maven的下载与安装

官网: http:///
下载地址:http:///download.cgi

下载zip文件直接解压到本地存放的磁盘中,即可安装成功

csvschema maven依赖 maven配置依赖库_学习_02


文件目录说明:

  1. bin:核心运行文件
  2. boot:类加载器
  3. conf:核心配置
  4. lib:依赖的jar包

Maven的环境变量配置

Maven是依赖于java的,所以需要检查是否有配置JAVA_HOME

csvschema maven依赖 maven配置依赖库_maven_03

MAVEN环境配置与JAVA_HOME一样的

先配置JAVA_HOME变量,选择解压maven的文件夹

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_04


再配置Path环境变量

编辑变量里面建议使用绝对路径下的bin如果使用%MAVEN_HOME\bin%来配置的话可能是出现环境变量设置不上,就是命令窗口输入mvn会提示:不是内部或外部命令

csvschema maven依赖 maven配置依赖库_maven_05


终端命令测试是否配置成功

输入如下两个命令中的一个都可以检查是否配置成功

mvn
mvn --version

如下图就是配置成功的实例,不超过显示不是内部或外部命令

csvschema maven依赖 maven配置依赖库_java_06

Maven基础概念

1、仓库

仓库:用于存储资源包各种jar包
仓库可分为:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源

远程仓库又分为:
中央仓库:Maven团队维护,存储所有资源的仓库

中央仓库地址:https://mvnrepository.com/

私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源

私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
中央仓库中的jar都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享

4、坐标

用于描述仓库中资源的位置(用于下载)

Maven:坐标主要组成:
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis).
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式

Maven:坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

Maven仓库配置

默认的maven仓库位置是存储在C:\Users\用户\.m2/repository文件下
需要修改一下(根据自身需求)

1、自定义仓库位置

打开E:\apache-maven-3.6.1\conf目录下的settings.xml修改存放位置

<localRepository>E:\apache-maven-3.6.1\mvn_resp</localRepository>

csvschema maven依赖 maven配置依赖库_java_07


2、配置阿里云镜像仓库

原因:maven是服务器是国外的,国内下载会很慢,所以都会使用国内的远程仓库下载到本地仓库

在同一个settings.xml文件下找到mirrors里面就是配置镜像的信息

csvschema maven依赖 maven配置依赖库_maven_08

<!--配置阿里云镜像-->
    <mirror>
        <!-- 此镜像的唯一标识,区分不同的mirror袁 -->
        <id>alimaven</id>
        <!-- 镜像名称 -->
        <name>aliyun maven</name>
        <!-- 镜像地址 -->
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>

IDEA中创建Maven项目

IDEA为目前最新版本:2021.3以上

创建工程并选择JDK版本

csvschema maven依赖 maven配置依赖库_java_09


基本工程创建

csvschema maven依赖 maven配置依赖库_java_10


目录结构和pox.xml配置文件

关于我IDEA中的文件夹颜色不同,是因为使用了IDEA中的插件修改的:可以查看我的博客插件介绍

csvschema maven依赖 maven配置依赖库_maven_11


配置IDEA中的Maven

1、打开设置

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_12


2、配置Maven

图一是默认使用IDEA中的Maven

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_13


修改自定义安装的maven版本

修改配置信息需要勾选复选框才可以选择文件

csvschema maven依赖 maven配置依赖库_jar包_14


在IDEA中的右侧也可以看到Maven工程,里面有生命周期和maven的插件

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_15


jar包坐标引入

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_16


刷新导入成功之后会在Maven中有jar包的存在

csvschema maven依赖 maven配置依赖库_jar包_17


maven自带的项目构建命令

后面的话会使用插件来运行这些命令就会方便很多

csvschema maven依赖 maven配置依赖库_java_18

IDEA中创建Maven的JaveWeb项目

在工程项目的右上角点击

csvschema maven依赖 maven配置依赖库_学习_19


新建model模块

csvschema maven依赖 maven配置依赖库_jar包_20


勾选选择web骨架

csvschema maven依赖 maven配置依赖库_jar包_21

模型信息

csvschema maven依赖 maven配置依赖库_jar包_22


点击下一步后核对maven版本信息,没问题就点击创建

csvschema maven依赖 maven配置依赖库_maven_23


创建之后需要点击Apple然后点击OK

web项目骨架会下载一堆的东西,需要联网等待下载

csvschema maven依赖 maven配置依赖库_java_24


补齐全文件

同样点击右上角的按钮,点击Mark as可以选择文件夹的颜色

csvschema maven依赖 maven配置依赖库_java_25


补全后的文件路径

csvschema maven依赖 maven配置依赖库_maven_26

安装tomcat服务器插件

先将选pox.xml的文件中的<build></build>标签的内容全部清除掉

csvschema maven依赖 maven配置依赖库_maven_27


生产的插件会跑到上面需要复制下来

csvschema maven依赖 maven配置依赖库_学习_28


里面也可以设置端口号以及访问路径

<port>端口号</port>
<path>访问路径</path>

刷新maven,查看插件启动tomcat服务器访问index.jsp

csvschema maven依赖 maven配置依赖库_maven_29


双击启动,点击控制台的访问路径,访问的是web项目里的indes.jsp文件

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_30


访问效果

csvschema maven依赖 maven配置依赖库_学习_31

Maven依赖管理

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

csvschema maven依赖 maven配置依赖库_学习_32

可选依赖:隐藏当前所依赖的资源(不透明)
在依赖项里面添加即可

<optional>true</optional>

排除依赖(不需要)
被排除的资源无需指定版本

在需要排除的依赖坐标里面添加

<!--排除依赖-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
      <!--排除依赖-->
      <exclusions>
        <exclusion>
          <groupId>org.hamcrest</groupId>
          <artifactId>hamcrest-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

Maven依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

作用范围

1、主程序范围有效(main文件夹范围内)

2、测试程序范围有效(test文件夹范围内)

3、是否参与打包(packagel指令范围内)

csvschema maven依赖 maven配置依赖库_jar包_33

Maven项目构建生命周期与插件

==不管执行到哪都需要先执行上面的生命周期才会走到下面

csvschema maven依赖 maven配置依赖库_csvschema maven依赖_34


插件

官网地址:https:///plugins/index.html

插件的使用

csvschema maven依赖 maven配置依赖库_jar包_35