大数据------JavaWeb------Maven(完整知识点汇总)

news2024/11/24 16:28:01

额外知识点

  • IDE
    • IDE是集成开发环境的缩写,它是一种软件应用程序,提供了编码、调试和部署软件的一站式解决方案。这些功能集成在一起,使开发人员能够在一个环境中完成整个软件开发过程,从编写代码到调试和测试,直到最终部署。常见的IDE包括Visual Studio、Eclipse、IntelliJ IDEA、MyEclipse等。

Maven基础

  • 定义

    • Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档,官网:http://maven.apache.org/
    • Maven是专门用于管理和构建Java项目的工具
  • 功能

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

      • 解释:你在myeclipse中写的项目在idea中就无法正常成功运行,原因是由于项目结构不一样(即目录不一样),而Maven解决了该问题

      在这里插入图片描述

    • 提供了一套标准化的构建流程(编译、测试、打包、发布、…)

      • 标准化构建流程如图所示,Maven提供了一套简单的命令来完成项目的构建

      在这里插入图片描述

    • 提供了一套依赖管理机制

      在这里插入图片描述

      • 依赖管理机制就是管理项目所依赖的第三方资源,比如:jar包、插件等等
      • 以往我们导入jar包的操作很繁琐(要先创建一个lib目录,然后将下载的jar包放入该目录下,最后将jar包Add as Library加入工作环境),而利用Maven即可不用这么繁琐
      • Maven使用标准的坐标配置来管理各种依赖,它只需要简单的配置就可以完成依赖管理
  • Maven模型

    在这里插入图片描述

    • 项目对象模型(Project Object Moudle)
    • 依赖管理模型(Dependency)
    • 插件(Plugin)
  • Maven仓库定义

    • 仓库(Repository)是用来存储项目依赖项(如库、框架、插件等)的地方。仓库是一个包含了各种Java类库和插件的中央集合,Maven通过仓库来查找、下载和管理项目所需的依赖项。

    • 解释:假设现在有个项目1,该项目需要一个jar包,首先Maven会先去本地仓库中寻找,若本地仓库中没有,则会去中央仓库中寻找,若中央仓库中有想要的jar包,则Maven会自动将jar包下载到本地仓库中,此时项目即可利用该jar包进行工作。此时假设有个项目2,也需要项目1所需的jar包,由于项目1所需的jar包已经放到本地仓库中了,所以项目2可直接使用该jar包

      在这里插入图片描述

  • Maven仓库分类

    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:由Maven团队维护的一个全球唯一的一个仓库(地址:https://repo1.maven.org/maven2/),放的基本上都是免费的开源的jar包
    • 远程仓库(私服):一般由公司团队搭建的私有仓库。(搭建的私有仓库除了会将中央仓库中的jar中均下载到私有仓库中,还会放一些自己写的jar包或有版权信息的jar包等)

    注意:

    ​ 1.当项目中使用坐标引入对应依赖的jar包后,首先会查找本地仓库中是否有对应的jar包,若有则在项目中直接引用;反之则会去中央仓库中下载对应的jar包到本地仓库

    ​ 2.若搭建远程仓库,则将来jar包的查找顺序变为:本地仓库>远程仓库>中央仓库

  • Maven坐标

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

    组成解释
    groupId为当前Maven项目隶属的 组织名称 (通常是域名反写,如:com.itheima)
    artifactId为当前Maven的项目名称 (通常是模块名称,如:order-service、goods-service)
    version定义当前的版本号
    scope定义依赖的作用范围

    在这里插入图片描述

Maven安装配置

  • Maven安装配置步骤

    1. 下载apache-maven-3.9.5.rar然后解压到自己想要安装的位置即可安装完整

    2. 配置环境变量MAVEN_HOME为安装路径的bin目录

      在这里插入图片描述

    3. 打开系统变量中的Path,将Maven加入,如图所示,然后一直单击确定即可

      在这里插入图片描述

      • 判断Maven是否配置成功:打开cmd输入命令mvn -version,若看到Maven的信息则代表配置成功,如图所示

      在这里插入图片描述

    4. 配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定的目录

      • 我为两个版本配置的本地仓库如下:
      <localRepository>F:\app\apache-maven-3.8.8\maven-repository</localRepository>
      
      <localRepository>F:\app\apache-maven-3.9.5\maven-repository</localRepository>
      
    5. 配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:

      <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
      

      在这里插入图片描述

Maven基本使用

Maven常用命令

命令解释
compile编译
clean清理
test测试
package打包
install安装

注意:使用命令前需要加上mvn,比如:mvn compile

  • 准备工作

    在这里插入图片描述

    1. 在项目MavenOne中的pom.xml中写入配置信息,如下所示

      <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>4.0.0</modelVersion>
          <groupId>com.itheima</groupId>
          <artifactId>maven-project</artifactId>
          <version>1.0-SNAPSHOT</version>
          <properties>
              <maven.compiler.source>8</maven.compiler.source>
              <maven.compiler.target>8</maven.compiler.target>
          </properties>
          <!-- 导入mysql驱动jar包-->
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.32</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.12</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
      </project>
      
    2. 该项目的src中有两个目录,分别为main(源代码目录)和test(测试代码目录)

      1. main中的代码如下

        在这里插入图片描述

      2. test中的代码如下

        在这里插入图片描述

    3. 在iml文件所在处打开Powershell窗口

      在这里插入图片描述

  • 编译

    • 在打开的Powershell窗口输入命令mvn compile

      注意:在刚配置完本地仓库时,由于仓库中无任何内容,所以在输入该命令后,会先下载所需的库(下载完成界面如图所示)以及插件,下载完成后再次输入该命令即可

      在这里插入图片描述

      • 输入mvn compile,若出现BUILD SUCCESS代表编译完成

        在这里插入图片描述

      • 编译完成后,在含有xml文件的文件夹目录内出现target目录,则进一步代表编译完成

        在这里插入图片描述

  • 清理

    • 在Powershell窗口输入命令mvn clean,即可将target目录删除

      在这里插入图片描述

    注意:第一次执行mvn clean命令时会先去下载对应的jar包和插件

  • 打包 —将java代码编译成的的字节码文件打包成一个jar包

    • 在Powershell窗口输入命令mvn package,执行成功后会重新生成一个target目录且该目录下有个jar包(注意第一次使用该命令时会先下载对应的插件和jar包)

      在这里插入图片描述

  • 测试 —自动测试test(测试代码目录)下的代码

    • 在Powershell窗口输入命令mvn test(第一次使用时会先下载对应的插件和jar包)

      在这里插入图片描述

  • 安装 —将当前的项目打包成一个jar包装到本地仓库中

    • 在Powershell窗口输入命令mvn install(第一次使用时会先下载对应的插件和jar包)

      在这里插入图片描述

Maven生命周期

  • 定义

    • Maven构建项目生命周期描述的是一次构建过程经历了多少个事件
  • Maven对项目构建的生命周期划分为三套

    • clean:清理工作
    • default:核心工作,比如:编译、测试、打包、安装等等
    • site:产生报告,发布站点等等

    在这里插入图片描述

    注意:在上图中有三套生命周期,执行某一套生命周期后面的命令时,该套生命周期前的所有命令会自动执行,而不是其他套前面的命令自动执行

IDEA中使用Maven

IDEA配置Maven步骤

  • File→Settings→搜索maven

  • 设置IDEA使用本地安装的Maven并修改配置文件路径

    • Maven安装目录下的conf目录下的settings.xml属于全局配置,而用户目录的.m2目录下的settings.xml是属于当前用户配置(.m2目录下的settings.xml文件可能显示不出来但不代表在该目录下没有该文件),所以为了让idea中的maven配置并使用自己的全局配置需要以下几步:

    • 第一步:打开C盘→用户→用户名→.m2→将文件settings.xml改名为settingsdrop.xml(若无settings.xml文件则创建一个空的settingsdrop.xml文件即可),如图所示

      在这里插入图片描述

    • 第二步:File→Settings→按图示设置maven

    在这里插入图片描述

    • 第三步:File→New Projects Setup →Settings for New Projects →然后按照第二步图示进行设置即可完成IDEA的Maven配置

      在这里插入图片描述

      注意 :IDEA在使用Maven时会以.m2目录下settings.xml文件为准,若在.m2目录下没找到该文件才会去使用自己在IDEA中配置的自己安装的Maven目录下的conf目录下的settings.xml文件。所以第一步的作用就是迷惑IDEA,让它去.m2目录下找不到settings.xml文件,从而不得不使用自己安装的maven下的settings.xml文件

  • 示例:创建Maven Web项目成功后IDEA警告提示

    在这里插入图片描述

IDEA创建Maven项目

  • 创建Macven方式一

    • File→New→Project或Moudle,输入模块名,选择Maven,单击Create,如图二所示即创建成功

      在这里插入图片描述

      在这里插入图片描述

  • 创建Maven方式二

    • File→Project Structure→选择Modules→单击+→New Module,然后按照图示操作即可创建成功

      在这里插入图片描述

      在这里插入图片描述

  • 注意事项

    • 在以上两种创建方式中test测试用例目录下均没有配置文件resources,若需要配置文件则按图示操作即可创建配置文件目录

      在这里插入图片描述

IDEA导入Maven项目

  • 步骤

    • 单击IDEA右侧Maven面板→单击+号→选中对应项目的xml文件然后双击即可,如图所示

    在这里插入图片描述

    在这里插入图片描述

  • 若IDEA右侧没有Maven的标志,则按如图所示方式设置即可

    在这里插入图片描述

IDEA中使用Maven命令

  • 步骤

    • 单击IDEA右侧Maven面板→选中要执行Mavne命令的Maven项目→Lifecycle→双击要执行的命令即可,如图所示

      在这里插入图片描述

IDEA配置Maven-Helper插件

  • 步骤

    • File→Settings→Plugins→搜索Maven,选择Maven Helper安装,然后重启IDEA即可,如图所示

      在这里插入图片描述

  • 配置该插件的原因

    • 若Maven项目过多时,此时你使用IDEA右侧的Maven面板来执行Maven命令就很繁琐,所以配置该插件
  • 该插件使用方式

    • 右键要使用Maven命令的Maven项目→Run Maven→选择要使用的命令

      在这里插入图片描述

      注意:从截图中可看出该插件可进行断点调试工作,比较方便

Maven坐标依赖管理

  • 依赖管理导入jar包步骤

    • 在pom.xml中编写<dependencies>标签
    • <dependencies>标签中使用<dependency>引入坐标
    • 定义坐标的groupID、artifactId、version
    • 单击刷新按钮,使坐标生效

    在这里插入图片描述

  • 以引入MySQL驱动jar包为例

    • 百度输入mysql maven进入进入mysql依赖官网(https://mvnrepository.com/artifact/mysql/mysql-connector-java)(注意:若使用其他jar包则也在百度输入名称 maven进入对应的依赖官网即可 )

    • 找到合适的mysql依赖单击进入,并复制Maven依赖到pom.xml文件中

      在这里插入图片描述

    • 第一次复制到pom.xml文件中时,mysql版本号会报红(原因是当前本地仓库中没有该版本的mysqljar包或插件),单击刷新按钮即可从中央仓库下载到本地仓库中,当不报红时说明已经下载到本地仓库

      在这里插入图片描述

      在这里插入图片描述

    • 查看是否导入成功

      • 单击IDEA右侧Maven面板→查看Dependencies目录中是否有mysql-connector-java:8.0.28,若存在则说明导入成功,如图所示

        在这里插入图片描述

  • 删除依赖管理jar包步骤

    • 删除xml文件中想要删除的依赖对应的<dependency>标签及该标签的标签体,然后刷新即可,如图所示

      在这里插入图片描述

    • 查看是否删除成功

      • 单击IDEA右侧Maven面板→查看Dependencies目录中是否有mysql-connector-java:8.0.28,若无则说明删除成功,如图所示

        在这里插入图片描述

  • 注意:有时候会忘记点击刷新,所以有更好的办法—即自动生效,步骤如下:

    在这里插入图片描述

导入本地仓库jar包

  • 注意

    • 从中央仓库下载的jar包会自动保存到本地仓库中,下次使用时就属于从本地仓库中导入jar包
  • 导入本地仓库中的jar包步骤

    • 摁住Alt + Insert→Dependency→输入需要的jar包然后单击Add即可,如图所示

      在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

Maven依赖范围

  • 定义

    • 通过设置坐标的依赖范围(scope)来设置对应jar包的作用范围(比如:编译环境、测试环境、运行环境)

      • 若设置坐标的依赖范围为 编译环境 :代表jar包在编译环境有效(即在main目录的java目录下的所有类均可用jat包)
      • 若设置坐标的依赖范围为 测试环境 :代表jar包在测试环境有效(即在test目录的java目录下的所有类均可用jat包)
      • 若设置坐标的依赖范围为 运行环境 :代表导入的jar包只在你将来运行项目时可用

      在这里插入图片描述

  • 使用的标签体为<scope>作用范围</scope>

  • 依赖范围关键字对应可用的作用范围

    依赖范围编译classpath测试classpath运行classpath例子备注
    compileYYYlogback<scope>标签的 默认标签体
    test-Y-Junit
    providedYY-servlet-api在编译环境和测试环境有效,但在真正运行时就不会在使用该jar包
    runtime-YYjdbc驱动
    systemYY-存储在本地的jar包基本用不到system
    import
    • 注意
      • 以test举例说明(其他几个同理):假设设置的作用范围为test,此时在编译环境中的类就无法导入作用范围为test的jar包,也就意味着无法使用该jar包中的方法等内容
      • 配置<scope>作用范围</scope>的关键字为test、provided、system的jar包在运行环境下无效,也就意味着若将此时的项目package(打包)成一个war包后,war包中不会包含有以上三个关键字的jar包(以MavenWeb项目为例)
      • import需引入DependencyManagement,详见Maven高级部分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1871101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机械装备制造行业MES,实时监控生产流程

装备制造行业MES&#xff0c;是专门为装备制造行业设计的生产信息化管理系统。旨在实时监控装备制造生产流程&#xff0c;实现全流程的精细化管理和监控&#xff0c;提高生产效率、降低生产成本、提升产品质量。 本文将详细介绍装备制造行业MES的概念、技术及应用&#xff0c;…

七天速通javaSE:第四天 数组基础

文章目录 前言一、认识数组二、数组的声明和创建1. 声明数组变量2. 创建数组3. 变量的初始化&#xff08;赋值&#xff09;3.1 静态初始化3.2 动态初始化 3. 示例 三、数组的使用1. 循环1.1 普通for循环1.2 For-Each 循环 2. 数组作为函数的参数和返回值 前言 本文将为大家介绍…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十九)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 29 节&#xff09; P29《28.网络连接-第三方库axios》 要想使用第三方库axios&#xff0c;需要先安装ohpm&#xff0c;因为 axios…

Redis优化之持久化

目录 1.Redis高可用 2.Redis持久化 2.1 RDB持久化 2.1.1 触发条件 2.1.2 执行流程 2.1.3 启动时加载 2.2 AOF持久化 2.2.1 开启AOF 2.2.2 执行流程 2.2.3 文件重写触发方式 2.2.4 文件重写的流程 2.2.5 启动时加载 2.3 RDB和AOF的优缺点 3.Redis性能管理 3.1 查看…

LEED绿色建筑认证的优缺点是什么

LEED绿色建筑认证的优缺点&#xff1a; 优点&#xff1a; 环保可持续性&#xff1a;LEED认证强调建筑的节能、节水以及材料循环利用等环保策略&#xff0c;有助于减少资源消耗和降低对环境的负面影响&#xff0c;推动建筑行业向更加环保的方向转变。 降低运营成本&#xff1a…

『Z-Workshop』 6月22日线下ALCOVE分享活动

2024 求是创新 ZJUBCA Sponsored by the ALCOVE Community TIME&#xff1a;2024/06/22 ADD&#xff1a;浙江大学紫金港校区 --- Alcove 是 Aptos 公链与 Alibaba Cloud 共同打造的亚洲首个 Move 开发者社区&#xff0c;致力于支持开发者使用 Move 语言构建下一代 Web3 应用&am…

华为笔记本电脑d盘数据丢失:原因、恢复方案与防范建议

华为笔记本电脑以其高性能和稳定的品质赢得了众多用户的青睐&#xff0c;但即使是如此优质的设备&#xff0c;也难免遭遇数据丢失的困境。本文将围绕华为笔记本电脑D盘数据丢失这一问题&#xff0c;探讨其常见原因、恢复方案&#xff0c;并提出未来防范的建议&#xff0c;以帮助…

用户订单管理API:轻松管理,购物无忧

在当今数字化时代&#xff0c;电子商务已经成为人们购物的首选方式。与传统的实体店相比&#xff0c;电商的优势在于便捷、快速、多样化等特点&#xff0c;使得更多的消费者选择了通过网络购物。而作为电商平台&#xff0c;如何提供更好的购物体验&#xff0c;是每个平台都需要…

ForkJoin框架与工作窃取算法详解

文章目录 一、ForkJoin框架概述1_核心概念2_主要类和方法1_ForkJoinPool2_ForkJoinTask 二、启用异步模式与否的区别三、ForkJoinPool的三种任务提交方式四、执行逻辑及使用示例1_示例&#xff1a;并行计算数组元素和2_forkJoinPool.submit3_ForkJoinTask<?>中任务的执行…

支持向量回归原理详解及Python代码示例

支持向量回归原理详解 支持向量回归&#xff08;Support Vector Regression, SVR&#xff09;是支持向量机&#xff08;SVM&#xff09;的一种扩展&#xff0c;用于回归问题。SVR通过寻找一个最佳的回归超平面&#xff0c;使得尽可能多的数据点落在超平面附近的ε-管内&#xf…

ubuntu16安装DHCP

一、安装dns server软件包 $ apt-get install bind9 二、配置BIND9 配置文件的目录默认为/etc/bind cd /etc/bind 进入该目录。。。 1、vi /etc/bind/named.conf.local zone "xuehai.com" {type master;file "/etc/bind/db.xuehai.com"; }; image.png …

win11记事本错误打开一次非常多的文件再次使用时造成卡住

错误地不小心一次性打开数十个数百个文件造成再次使用时&#xff0c;文件卡住。 亲测有效。

ISP IC/FPGA设计-第一部分-SC130GS摄像头分析-IIC通信(1)

1.摄像头模组 SC130GS通过一个引脚&#xff08;SPI_I2C_MODE&#xff09;选择使用IIC或SPI配置接口&#xff0c;通过查看摄像头模组的原理图&#xff0c;可知是使用IIC接口&#xff1b; 通过手册可知IIC设备地址通过一个引脚控制&#xff0c;查看摄像头模组的原理图&#xff…

离散傅里叶变化

傅里叶变换 对傅里叶变换了解不是很清楚的朋友推荐一下这个帖子&#xff0c;讲得很详细 傅里叶变换 源码 先看源码链接 #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgcodecs.hpp" #include "open…

Yolov8可视化界面使用说明,含代码

⭐⭐ YOLOv8改进专栏|包含主干、模块、注意力机制、检测头等前沿创新 ​ ⭐⭐ YOLOv8可视化界面如下 使用需要安装opencv-python、torch、numpy及PySide6(python版本>3.9) pip install PySide6 pip install numpy pip install opencv-python 使用说明 运行下方代码&#xf…

《software architecture patterns》学习笔记

了解通用的架构模式并知道什么时候使用它们。 软件架构定义了软件的基本特点和行为。比如&#xff0c;有些软件架构会让软件变得可扩展&#xff0c;而有些软件架构会让软件变得易于修改。 知道每一种软件架构的特点、优缺点是非常有必要的&#xff0c;因为它们能帮助你选择一种…

LeetCode刷题之HOT100之课程表

吃完普通的食堂饭菜&#xff0c;回到实验室&#xff0c;继续做一道题&#xff01; 1、题目描述 2、逻辑分析 这道题涉及到图相关知识&#xff0c;应用到了拓扑排序。 题意解释 一共有 n 门课要上&#xff0c;编号为 0 ~ n-1。先决条件 [1, 0]&#xff0c;意思是必须先上课 0…

湖北大学2024年成人高考函授报名专升本法学专业介绍

湖北大学&#xff0c;这所承载着深厚文化底蕴和学术积淀的高等学府&#xff0c;始终致力于为广大有志之士提供多元化的学习机会。在时代的浪潮中&#xff0c;为了满足社会对于高层次法律人才的需求&#xff0c;湖北大学特别推出了成人高等继续教育项目&#xff0c;为广大在职人…

双击跳转到 BP 事务代码 CALL TRANSACTION BP AND SKIP FIRST SCREEN

BP 维护业务伙伴 BP事务代码不能像普通的VA03 这样跳转&#xff0c;下面介绍3种方法。 1. 单纯跳转到BP FORM FRM_SHOW_BP USING LV_BP TYPE BU_PARTNER.CALL METHOD CL_RMPS_ADDRESS>SHOW_BPEXPORTINGIM_BP_NUMBER LV_BP. ENDFORM. 2. 带业务伙伴角色跳转到BP&#xff…

NAND闪存巨头铠侠(Kioxia)计划最迟于10月下旬通过首次公开募股IPO

据路透社于6月26日引用消息来源的报道&#xff0c;在半导体市场条件反弹及财务业绩迅速改善的背景下&#xff0c;NAND闪存巨头铠侠&#xff08;Kioxia&#xff09;正准备尽快提交初步申请&#xff0c;并计划最迟于10月下旬通过首次公开募股&#xff08;IPO&#xff09;在东京证…