JavaWeb:Maven讲解

1、Maven简介

什么是Maven

Maven是专门用于管理和构建Java项目的工具,它主要的功能有:

  1. 提供了一套标准化的项目结构
  2. 提供了一套依赖管理机制(不需要再去手动导入jar包)
  3. 提供了一套依赖标准化的构建流程(编译,测试,打包,发布…)

Maven标准化项目结构

Maven提供了一套标准化项目结构,所有的IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目也可以通用

image-20231102205711547

2、Maven仓库

仓库的分类

  1. **本地仓库:**自己计算机上的一个目录

  2. **中央仓库:**由Mavne团队维护的全球唯一的仓库

    地址:https://repo1.maven.org/maven2

  3. **远程仓库(私服):**一般由公司团队搭建的私有仓库

执行流程

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库是否有对应的jar包

  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库
  • 如果有,则在项目直接引用

搭建远程仓库,jar包的查找顺序为

  • 本地仓库 --> 远程仓库 --> 中央仓库
3、Maven安装

Maven属于绿色软件,解压即可安装

下载地址:Maven – 下载 Apache Maven

  • 关注两个文件
    1. bin/mvn.cmd 可执行文件
    2. conf/settings.xml 配置文件
  • 注意不要放在中文目录下
4、Maven的配置

Maven三种配置方法

  1. 配置本地仓库:修改conf/settings.xml 中55行的 为一个指定目录

    <localRepository>D:\software\mvn_resp</localRepository>
    
  2. 配置阿里云私服:修改conf/settings.xml 中160行 标签,为其添加如下子标签

        <mirror>
          <id>nexus-aliyun</id>
          <mirrorOf>central</mirrorOf>
          <name>Nexus aliyun</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    
  3. Maven默认使用的是jdk1.5版本,在188行标签可以修改,不改也一样可以,向上兼容的

    <profile>    
        <id>jdk-1.8</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.8</jdk>    
        </activation>    
        <properties>    
            <maven.compiler.source>1.8</maven.compiler.source>    
            <maven.compiler.target>1.8</maven.compiler.target>    
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
        </properties>    
    </profile>
    
5、IDEA配置Maven

点击file -> Settings -> Build Execution Deployment -> Build Tools -> Maven

填入自己的Mavne地址

image-20231103092253399

6、Maven坐标

什么是坐标

  • Maven中的坐标是资源的唯一标识
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven坐标的主要组成

  • groupId:定义当前Maven项目属于组织名称(通常反写域名)
  • artifactId:定义当前Mavne项目名称
  • version:定义当前项目版本号
7、IDEA创建Mavne模块

创建步骤

  1. 创建模块,选择Maven,点击Next
  2. 填写模块名称,坐标信息,点击finish,创建完成
  3. 编写HelloWorld,测试运行

创建过程

选择新建项目点击Maven

image-20231103094439177

下方勾选可以修改模块名称和坐标信息

image-20231103094519088

再点完成即可

image-20231103094551522

8、Maven依赖管理

使用坐标导入jar包

  1. 在pom.xml中编写标签

        <dependencies>
            
        </dependencies>
    
  2. 在标签中使用引入坐标

    <dependencies>
        <dependency>
        </dependency>
    </dependencies>
    
  3. 定义坐标的grupId,artifactld,version

        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.46</version>
            </dependency>
        </dependencies>
    
  4. 点击刷新按钮,使坐标生效

    image-20231103102157562

使用快捷方式引入jar包

  1. 在pom.xml中按alt+insert,选中Dependency

    image-20231103102529924

  2. 在弹出的面板中搜索对应坐标,然后双击选中对应坐标

    image-20231103102610833

  3. 点击刷新按钮,使坐标生效

    image-20231103102704242

在线查询jar包依赖

  1. 通过官网:https://mvnrepository.com 搜索依赖

    image-20231103103055376

  2. 选择对应的资源复制到pom.xml文件中即可

    image-20231103103258702

**注意:**同样的jar包,后面配的会把前面配的替代掉

9、Maven常用命令

IDEA操作Maven命令

命令 说明
mvn clean 删除target目录
mvn compile 编译main目录
mvn test 执行test目录
mvn package 打包到target目录下
mvn install 安装到本地仓库中

案例演示

  1. mvn clean

    image-20231103144833351

    image-20231103144924306

  2. mvn compile

    编译之后又会重新生成target目录

    image-20231103145036723

  3. mvn test

    比较少在这边进行测试

    image-20231103145719267

  4. mvn package

    打包完会在target生成一个jar包

    image-20231103145940907

10、Maven的生命周期
  1. Maven构建项目生命周期描述的是一次构建过程经历了多少事件

  2. Maven对项目构建的生命周期划分为3套

    • clean : 清理工作
    • default:核心工作,例如:编译,测试,打包,安装等
    • site:产生报告,发布站点
  3. 在构建过程中是没办法跳过的

    例如:我们进行测试,是没办法跳过编译,直接进行测试的

  4. 整体生命周期

    image-20231103152139687

11、Maven依赖管理

通过设置坐标的依赖范围(scope)可以设置对应jar包的作用范围

不设置的时候,默认就是compile的范围也就是所有路径都能使用

image-20231103152605869

依赖范围 编译类路径(main) 测试类路径(test) 运行类路径(target) 例子
compile Y Y Y logback
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

代码演示

  • 导入druid

    	<!--        druid连接池依赖-->
    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>1.0.9</version>
         <scope>compile</scope>
    </dependency>
    
  • 在什么都没有配置的情况下,main目录和test目录都是能用的

    image-20231103153646837

  • 在pom.xml文件中添加作用域

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.9</version>
                <scope>test</scope>
            </dependency>
    
  • 发现只有test目录能用了

    image-20231103153842008

猜你喜欢

转载自blog.csdn.net/weixin_53961667/article/details/134205307