0
点赞
收藏
分享

微信扫一扫

【javaWeb &第四篇】后端-Maven详细入门教程

安七月读书 03-31 09:00 阅读 3
mavenjava

Maven入门教程

前言

本文是作者通过学习过程中的学习笔记,希望帮助大家,同时大家可以搭配黑马程序员进行学习

Maven配置

Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具

  • 作用:
  1. 方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题,需要下载的依赖在pom.xml中进行声明就好,便捷好用
  2. 统一的目录结构(将多个软件不能够互相打开的问题做出很好的解决方案)
    结构目录
  3. 标准跨平台(linux,Windows,MacOS)的自动化构建方式
    在这里插入图片描述
    提供统一的,标准的构建流程以及简约的开发命令
    举例:
    比如要将maven中的文件进行编译,在右侧的maven的编辑中点击compile进行编译,编译好的文件会自动创建并存储到target目录中,而打包直接点击package就行
  • maven整体结构
    maven结构
    maven中生命周期中的各个操作,比如编译,打包等都是通过对应的插件来执行完成的,不同的操作会产生对应的文件。
    pom.xml是maven的核心,对maven工程进行描述,在文件中进行依赖管理,项目资源存储在仓库当中,通过pom.xml文件进行资源的调用

  • 仓库
    本地仓库:本地计算机上的目录文件
    中央仓库:由Maven团队维护的全球唯一的仓库
    https://repol.maven.org/maven2/
    远程仓库(私服):一般由公司搭建的私有仓库
    仓库运转:
    在这里插入图片描述
    当本地仓库中没有对应文件,本地仓库就会在远程仓库中进行查找,如果远程仓库中也没有,就会在中央仓库中进行查找(外网速度慢),如果找到会返回到远程仓库中,远程仓库保存下来,通过也返回到本地仓库当中。

  • Maven安装
    请参考Maven安装篇

  • idea中配置maven环境
    配置maven
    在build中配置maven,maven的安装目录,以及maven settings配置文件的地址,以及maven的本地仓库

  • 创建Maven
    在这里插入图片描述
    name:项目名称
    Groupld:组织名称(确定java文件包下的目录结构)
    artifactld:模块名(确定该Maven处在的目录文件)
    组织名称以及模块名还有版本号称为该Maven的坐标
    配置好之后:
    在pom.xml中存放工程信息:

    <groupId>org.example</groupId>
    <artifactId>maven_heima</artifactId>
    <version>1.0-SNAPSHOT</version>

这个就是pom.xml中表示该Maven工程的坐标

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

该标签下第一行表示项目源码使用的jdk版本,第二行表示该项目在打包的时候使用的jdk版本,第三行表示使用的字符

注意:在刚刚创建好的Maven工程的Test目录下没有配置文件目录,这是因为不常用就隐藏了,如果要调出,需要在Test下进行创建文件夹,这时会进行提示

这时候点击会出现resources文件

  • Maven坐标
    Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置
    使用坐标来定义项目或引入项目中需要的依赖
    坐标组成:
    groupld:通常是域名反写
    artifactld:定义当前Maven项目名称(通常是模块名称)
    version:定义当前的版本号

  • 如何导入Maven工程
    方式一:
    打开idea,点击右侧的Maven项目工具栏,点击+号,选中对应的pom.xml文件
    在这里插入图片描述
    方式二:通过菜单中的模块进行添加
    导入Maven

Maven依赖管理

  • 依赖配置
    依赖:指的是项目在运行时所需要的jar包,一个项目中可以引入多个依赖

如何配置:

  1. 在pom.xml中编写<dependencies>标签
  2. <dependencies>标签中使用<dependency>中引入坐标
  3. 定义坐标的groupld,artifactld,version
  4. 点击刷新按钮,引入最新加入的坐标

在这里插入图片描述
如图所示就是创建依赖的过程,当输入完之后可以在右侧的Maven面板中查询项目的依赖是否成功添加,默认是没有添加的,因为需要进行重新加载

提供Maven仓库以供大家进行依赖查找:https://mvnrepository.com/

  • Maven依赖传递
    依赖具有传递性
    传递性
    项目A需要项目B,当项目B需要依赖,所以当A导入依赖B的时候会自动将B所依赖的文件自动添加,称为项目依赖的传递性
    因为依赖的传递性所以依赖分为直接依赖和间接依赖
    如果不想要一个依赖所附带的依赖可以使用排除依赖:
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>

<version>后接着写入排除依赖标签,并重新加载

  • 可视化查看项目的依赖关系
    在pom.xml文件中点击右键选择diagrams,选择show Dependencies此时会以图表的形式显示依赖之间的关系

  • 依赖范围
    依赖的jar包,默认情况下可以在任何地方使用。可以通过<scope>标签设置作用范围
    作用范围:
    主程序范围有效(main文件夹范围内)
    测试程序范围有效(test文件夹范围内)
    是否参与打包运行(package指令范围内)
    scope取值表:
    scope

    Maven的生命周期

    Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一
    Maven有三套独立的生命周期:
    clean:清理工作(主要清理项目构建后的一些字节文件,打包文件等)
    default:核心工作,如:编译,测试,打包,安装,部署等;
    site:生成报告,发布站点等

生命周期
在这里插入图片描述

在idea的Maven面板栏中也可以查看常见的生命周期阶段
常见的阶段

  • 执行生命周期阶段
    方式一:通过Maven面板栏进行执行
    方式二:通过命令执行,在命令行中进入到maven项目目录下执行
    mvn clean
    mvn complie

如何绕过某一测试阶段:
在这里插入图片描述
进行点击跳过测试阶段

maven工程本身就是一个插件项目,所有的操作都是由插件完成的,每一个阶段操作都对应一个插件
在这里插入图片描述

举报

相关推荐

0 条评论