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

额外知识点

  • 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>为一个指定的目录

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

      xml 复制代码
      <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中写入配置信息,如下所示

      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 例子 备注
    compile Y Y Y logback <scope>标签的 默认标签体
    test - Y - Junit
    provided Y Y - servlet-api 在编译环境和测试环境有效,但在真正运行时就不会在使用该jar包
    runtime - Y Y jdbc驱动
    system Y Y - 存储在本地的jar包 基本用不到system
    import
    • 注意
      • 以test举例说明(其他几个同理):假设设置的作用范围为test,此时在编译环境中的类就无法导入作用范围为test的jar包,也就意味着无法使用该jar包中的方法等内容
      • 配置<scope>作用范围</scope>的关键字为test、provided、system的jar包在运行环境下无效,也就意味着若将此时的项目package(打包)成一个war包后,war包中不会包含有以上三个关键字的jar包(以MavenWeb项目为例)
      • import需引入DependencyManagement,详见Maven高级部分
相关推荐
Francek Chen1 小时前
【大数据技术基础 | 实验十二】Hive实验:Hive分区
大数据·数据仓库·hive·hadoop·分布式
吾日三省吾码1 小时前
JVM 性能调优
java
弗拉唐2 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi773 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3433 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀3 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20204 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深4 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
shuangrenlong4 小时前
slice介绍slice查看器
java·ubuntu