JavaWeb:Maven讲解

简介: Maven是一个流行的Java项目管理工具。它提供了构建、文档生成、依赖库管理等一系列功能,使得Java项目的构建和协作更加高效。Maven使用XML配置文件来定义构建过程和依赖关系,并且可以从中央仓库或者本地仓库中下载需要的依赖库。通过Maven,开发者可以更加方便地管理项目中的依赖关系和构建过程,使得Java项目的开发和发布更加简单和可控。

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

相关文章
|
6月前
|
Java Maven
Javaweb之 IDEA集成Maven的详细解析(2)
3、填写模块名称,坐标信息,点击finish,创建完成
127 4
|
6月前
|
存储 Java Maven
Javaweb之Maven仓库的详细解析
2.3 Maven仓库 仓库:用于存储资源,管理各种jar包 仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件
299 0
|
2月前
|
SQL Java 数据库连接
JavaWeb基础3——Maven基础&MyBatis
构建工具Maven、Maven安装配置、基本使用、IDEA使用Maven、依赖管理、插件、Mybatis、核心配置文件mybatis-config.xml、Mapper代理开发、配置文件实现增删改查、Mybatis参数传递、注解实现增删改查
JavaWeb基础3——Maven基础&MyBatis
|
6月前
|
Java Maven
Javaweb之 IDEA集成Maven的详细解析(1)
03. IDEA集成Maven 我们要想在IDEA中使用Maven进行项目构建,就需要在IDEA中集成Maven 3.1 配置Maven环境 3.1.1 当前工程设置 1、选择 IDEA中 File => Settings => Build,Execution,Deployment => Build Tools => Maven
198 3
|
5月前
|
数据可视化 Java 持续交付
JavaWeb后端开发之Maven 2024介绍安装测试详解
JavaWeb后端开发之Maven 2024介绍安装测试详解
70 0
|
5月前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
|
XML 安全 Java
【JavaWeb】超详细IDEA-专业版-创建Maven项目
Maven是一个专门用于管理和构建Java项目的工具。我们之所以要使用Maven,是因为Maven可以为我们提供一套标准化的项目结构、一套标准化的构建流程和一套方便的依赖管理机制,这些功能可以使得我们的项目结构更加清晰,导入jar包的方式更加方便和标准,进而使得我们的开发更加的便捷高效。
|
6月前
|
Java Linux Apache
Javaweb之Maven的详细解析
1.2 初识Maven 1.2.1 什么是Maven Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具
141 0
|
IDE Java Maven
【JavaWeb】Maven搭建环境
【JavaWeb】Maven搭建环境
|
22天前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
99 1
Maven——创建 Spring Boot项目