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

Maven入门教程

前言

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

Maven配置

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

  • 作用:
  1. 方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题,需要下载的依赖在pom.xml中进行声明就好,便捷好用
  2. 统一的目录结构(将多个软件不能够互相打开的问题做出很好的解决方案)
  3. 标准跨平台(linux,Windows,MacOS)的自动化构建方式

    提供统一的,标准的构建流程以及简约的开发命令
    举例:
    比如要将maven中的文件进行编译,在右侧的maven的编辑中点击compile进行编译,编译好的文件会自动创建并存储到target目录中,而打包直接点击package就行
  • maven整体结构

    maven中生命周期中的各个操作,比如编译,打包等都是通过对应的插件来执行完成的,不同的操作会产生对应的文件。

    pom.xml是maven的核心,对maven工程进行描述,在文件中进行依赖管理,项目资源存储在仓库当中,通过pom.xml文件进行资源的调用

  • 仓库

    本地仓库:本地计算机上的目录文件

    中央仓库:由Maven团队维护的全球唯一的仓库

    https://repol.maven.org/maven2/

    远程仓库(私服):一般由公司搭建的私有仓库

    仓库运转:

    当本地仓库中没有对应文件,本地仓库就会在远程仓库中进行查找,如果远程仓库中也没有,就会在中央仓库中进行查找(外网速度慢),如果找到会返回到远程仓库中,远程仓库保存下来,通过也返回到本地仓库当中。

  • Maven安装

    请参考Maven安装篇

  • idea中配置maven环境

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

  • 创建Maven

    name:项目名称

    Groupld:组织名称(确定java文件包下的目录结构)

    artifactld:模块名(确定该Maven处在的目录文件)

    组织名称以及模块名还有版本号称为该Maven的坐标

    配置好之后:

    在pom.xml中存放工程信息:

java 复制代码
    <groupId>org.example</groupId>
    <artifactId>maven_heima</artifactId>
    <version>1.0-SNAPSHOT</version>

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

java 复制代码
    <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依赖管理

  • 依赖配置
    依赖:指的是项目在运行时所需要的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所依赖的文件自动添加,称为项目依赖的传递性
    因为依赖的传递性所以依赖分为直接依赖和间接依赖
    如果不想要一个依赖所附带的依赖可以使用排除依赖:
java 复制代码
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>

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

  • 可视化查看项目的依赖关系

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

  • 依赖范围

    依赖的jar包,默认情况下可以在任何地方使用。可以通过<scope>标签设置作用范围

    作用范围:

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

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

    是否参与打包运行(package指令范围内)

    scope取值表:

    Maven的生命周期

    Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

    Maven有三套独立的生命周期:

    clean:清理工作(主要清理项目构建后的一些字节文件,打包文件等)

    default:核心工作,如:编译,测试,打包,安装,部署等;

    site:生成报告,发布站点等

    每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段, 在同一套生命周期中,运行后面的阶段,前面的阶段也会运行


常见的生命周期阶段

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

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

如何绕过某一测试阶段:

进行点击跳过测试阶段

maven工程本身就是一个插件项目,所有的操作都是由插件完成的,每一个阶段操作都对应一个插件

相关推荐
Abladol-aj28 分钟前
并发和并行的基础知识
java·linux·windows
清水白石00828 分钟前
从一个“支付状态不一致“的bug,看大型分布式系统的“隐藏杀机“
java·数据库·bug
吾日三省吾码6 小时前
JVM 性能调优
java
弗拉唐7 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi777 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3438 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀8 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20208 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深8 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++