文章目录

  • Maven基本介绍
  • 一、概述
  • 1、简介
  • 2、官网和仓库地址
  • 3、仓库分类
  • 5、坐标
  • 6、依赖
  • 7、目录分类
  • 8、jar包和本地仓库对应关系
  • 二、pom.xml文件解读
  • 三、Maven命令(生命周期)
  • 四、依赖
  • 1、添加jar包依赖
  • 2、依赖的范围配置 scope 标签
  • 3、依赖的传递
  • 4、依赖的排除
  • 5、依赖的继承
  • 6、聚合
  • 五、创建Maven项目
  • 1、父工程
  • 2、子工程
  • 六、工程导入



Maven基本介绍

一、概述

1、简介

  • Maven是用来自动下载jar包的工具
  • Maven是用来管理jar包的工具
  • Maven是用来构建项目的工具

2、官网和仓库地址

  • Maven官网:https://maven.apache.org/
  • Maven仓库配置文件:https://mvnrepository.com/

3、仓库分类

  1. 中央仓库 / 远程仓库:本质上就是一个国外的网站
  2. 镜像仓库:其实就是一个国内的网站,人家从中央仓库下载好了jar包,你可以直接用
  3. 本地仓库:其实就是你自己定的一个文件夹的位置,用来存jar包的位置

5、坐标

通过Maven下载很多的jar包,唯一的定位到 jar 包的方式就是使用坐标
GroupId:公司或组织域名
ArtifactId:项目名称或项目中的一个模块
Version:版本号

6、依赖

Maven会自动下载并管理相关的jar

7、目录分类

  • 核心配置文件:setting.xml,D:\Path\apache-maven\apache-maven-3.6.3\conf\settings.xml
  • 本地仓库:自己定义的本地仓库路径,D:\Java\Maven\repository
  • 本地工作空间:自己创建的目录空间(很少使用),D:\Java\Maven\maven_workspace

8、jar包和本地仓库对应关系

pom.xml的jar包

<dependency>
           <groupId>org.mybatis.spring.boot</groupId>
           <artifactId>mybatis-spring-boot-starter</artifactId>
           <version>2.2.2</version>
       </dependency>

本地仓库

Maven本地仓库根目录\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.2

注意:坐标也是这样对应的



二、pom.xml文件解读

<?xml version="1.0" encoding="UTF-8"?>
<!--project 标签:根标签,表示对当前工程进行配置和关联-->
<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 标签:从 Maven2 开始固定是 4.0.0,代表当前 pom.xml 所采用的标签结构-->
    <modelVersion>4.0.0</modelVersion>

    <!--
        坐标信息
        groupId 标签:代表公司或组织
        artifactId 标签:代表项目或项目下的某一个模块
        version 标签:代表当前模块版本
        packaging 标签:代表当前工程打包方式;
            取值 jar:生产 jar 包,Java 工程;
            取值 war:生成 war 包,Web工程;
            取值 pom:这个工程是用来管理其它工程的工程
    -->
    <groupId>org.example</groupId>
    <artifactId>daily_demo02</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    
    <!--properties 标签:Maven 中定义的属性值-->
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--dependencies 标签:配置依赖信息,可以包含多个 dependency 子标签-->
    <!--dependency 标签:配置一个具体的依赖信息-->
    <!--坐标信息:导入哪个 jar 包,就配置它的坐标信息即可-->
    <dependencies>
        <dependency>
            <!--坐标信息:导入哪个 jar 包,就配置它的坐标信息即可-->
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>
    </dependencies>
</project>

三、Maven命令(生命周期)

  • clean:清理,删除target目录
  • compile:编译,主程序编译main
  • test:测试,运行测试程序,测试报告在 target/surefire-reports
  • package:打包,打包的结果 jar 包,存放到 target 目录
  • install:安装jar包到本地仓库、生成pom文件、打包jar包,pom.xml和XXX.pom(名字改变,本质上是同一个文件)
  • site:生成站点
  • deploy:将最终的包复制到远程的仓库,让其它开发人员与项目共享或部署到服务器上运行(需要借助插件 cargo)

四、依赖

1、添加jar包依赖

  1. 修改pom.xml文件,使用dependencies标签,引入各种jar包
  2. 指定jar包的坐标,刷新,Maven会自动下载
  3. 检查本地仓库

2、依赖的范围配置 scope 标签

<!--配置 jar包 依赖的时候需要,有些可以不配置-->
<scope>compile</scope>
<scope>test</scope>
<scope>provided</scope>

3、依赖的传递

  • compile:B依赖C可以在传递
  • test 或 provided:B依赖C不可以传递,明确配置才可以传递

4、依赖的排除

jar 包的冲突,配置pom.xml文件,dependencies 标签中

<dependency>
      <!--jar包-->
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>compile</scope>
            <!--使用excludes标签配置依赖的排除-->
            <exclusions>
                <!--在exclude标签中配置一个具体的排除-->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

5、依赖的继承

  • 父工程的依赖,子工程都可以使用
  • 打包方式是pom的是父工程(pom.xml配置文件中 packaging 标签)
  • 父工程管理其它子工程
  • 指定父工程 parent 标签
  • 指定子工程 module 标签
  • 当子工程的 groupId 标签 和 version 标签 跟父亲一样,可以省略
  • artifactId 标签 子工程保留不能省略
  • 子工程的依赖版本和父工程的不同,子工程的依赖会覆盖父工程的依赖,正常情况版本是一样的

6、聚合

  • 部分(模块)组成整体(项目)
  • 依赖安装时只需一键安装 install ,项目的依赖安装后,模块的依赖也会安装(倒过来安装)
  • 以下配置会自动生成,特殊情况下需要自己配置
<!--
  	聚合的配置父工程pom.xml
    modules 标签:被管理的工程,可以包含多个 module 子标签
    module 标签:具体被管理的每个工程
  -->
    <modules>
        <module>day49</module>
        <module>day49_2</module>
    </modules>
<!--
    	子工程配置pom.xml,指明父工程
    -->
    <parent>
        <artifactId>daily_demo02</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

五、创建Maven项目

1、父工程

maven setting 镜像源 maven镜像是什么_spring boot


maven setting 镜像源 maven镜像是什么_maven setting 镜像源_02

2、子工程

创建Moule即可

maven setting 镜像源 maven镜像是什么_jar包_03


直接创建一个普通Maven即可,Java项目

maven setting 镜像源 maven镜像是什么_maven setting 镜像源_04


maven setting 镜像源 maven镜像是什么_maven setting 镜像源_05

六、工程导入

修改maven配置即可

maven setting 镜像源 maven镜像是什么_jar包_06


测试项目是否能正常运行