(尚硅谷)Maven 新版教程 - 锦囊一

2023-10-13 13:40

本文主要是介绍(尚硅谷)Maven 新版教程 - 锦囊一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 参考文献
  • 前言
  • 1、Maven 的工作机制
  • 2、Maven 核心程序解压与配置
    • 2.1 Maven 下载版本(IDEA 配置 Maven 发生错误)
    • 2.2 解压配置 Maven
  • 3、maven 的命令行环境
    • 3.1 坐标和本地仓库的对应关系
    • 3.2 maven 的常用命令
      • 3.2.1 创建 maven 工程命令
      • 3.2.2 Maven 的构建命令
      • 3.2.3 查看当前工程所依赖的 jar 包命令
    • 3.3 创建 Maven 版的 Web 工程(实验四:打包版本错误)
    • 3.4 标签的依赖范围
    • 3.5 依赖的继承
  • 4、IDEA 新建 maven 工程
    • 4.1 创建工程之后的自动导入问题
    • 4.2 maven 配置完成之后报错
    • 4.3 maven 配置一劳永逸的方法
    • 4.4 创建 Web 模块工程
      • 4.4.1 第一种方式(不使用骨架)
      • 4.4.2 第二种方式(使用骨架的方式)
        • 添加 web 模块的两种方法:
        • java 和 resources 包为灰色的原因
      • 4.4.3 war 包打包的时候报错


参考文献

  1. Maven 入门、原理与实战,尚硅谷给出的官方 maven 课件地址,我们现在只要学习第一支锦囊的东西就可以了。
  2. 尚硅谷2022版Maven教程(maven入门+高深,全网无出其右!),尚硅谷,让天下有学不完技术,对应第一支锦囊,看时频 P1-P53 即可。

前言

跟着视频按照老师的教程来操作的时候,由于 IDEA 、JDK 、Maven 版本不一致,会产生一堆意想不到的错误,本文主要是记录自己遇到的报错以及搜索到的可以解决问题的解决方案,以便今后查阅。


1、Maven 的工作机制

在这里插入图片描述
Maven 核心程序:只是负责宏观上的总体调度;
Maven 插件:具体负责干活的;

总结:

  • 我们以后创建工程都是创建 maven 工程,我们写的一些 Maven 程序都是调用 maven 插件的 jar 包来执行的;
  • 我们的工程可以打包成 jar 包主动安装到我们自己定义的 maven 仓库里,我们也可以依赖一些框架的 jar 包,这些 jar 包先从自己的本地仓库找,找不到的话去镜像网站定义的远程仓库进行下载,下载到本地仓库之后就可以进行使用了。

2、Maven 核心程序解压与配置

2.1 Maven 下载版本(IDEA 配置 Maven 发生错误)

参考文献:

  1. IDEA版本与MAVEN版本对应关系,及历史MAVEN版本下载
  2. maven 版本与 idea 版本对应关系
  3. 旧版 maven 的下载地址

这里 IDEA 版本需要和 maven 版本进行对应才可以,不然之后用 idea 配置 maven 的时候会报错。

这里点击 Help - About 之后看到我的 idea 版本为 2012.3.2

在这里插入图片描述

那么根据版本对应信息,maven 版本必须在 idea 发布时间之前的,我们选择 2021.3.2之前的,那选择 3.6.3 版本进行下载
在这里插入图片描述

下载的时候 Windows 系统选择的是 Binary Zip 文件进行下载,如果你想查看源码的话选择 source 文件进行下载。
在这里插入图片描述

2.2 解压配置 Maven

解压到非中文、没有空格的一个地方就可以了。

配置这里可以看尚硅谷的笔记,第一节 - Maven核心程序解压与配置,如果笔记看不懂可以直接看这一节的视频,老师讲的很好,P7 - P13 视频。

  1. 配置 Maven 工程的基础 JDK 版本这一步,改成你自己配置的 JDK 版本,这个配置要放在 <profiles> 标签内部;
<!-- 配置 Maven 工程的基础 JDK 版本 -->
<profile><id>jdk-17</id><activation><activeByDefault>true</activeByDefault><jdk>17</jdk></activation><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><maven.compiler.compilerVersion>17</maven.compiler.compilerVersion></properties>
</profile>
  1. 如果你是 idea 配置 maven 有问题,然后重新安装了低版本的 maven 之后,记得修改环境变量的配置,第二节 配置环境变量。

3、maven 的命令行环境

3.1 坐标和本地仓库的对应关系

  • groupId:一般是公司或组织名称+项目名称,如 com.atguigu.maven
  • artifactId:模块的名称,如 pro01 - maven - java
  • version:模块的版本号,1.0-SNAPSHOT

比如我上面用 gav 坐标唯一定义的 jar 包在本地仓库的位置为:
在这里插入图片描述

3.2 maven 的常用命令

3.2.1 创建 maven 工程命令

  1. 生成一个 maven 工程:mvn archetype:generate
    在这里插入图片描述
    出现 Build SUCCESS 就说明创建成功了。
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: D:\Projects\MavenWorkspace\space01
[INFO] Parameter: package, Value: com.atguigu.maven
[INFO] Parameter: groupId, Value: com.atguigu.maven
[INFO] Parameter: artifactId, Value: pro01-maven
[INFO] Parameter: packageName, Value: com.atguigu.maven
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: D:\Projects\MavenWorkspace\space01\pro01-maven
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  38.995 s
[INFO] Finished at: 2022-06-01T16:56:31+08:00
[INFO] ------------------------------------------------------------------------
  1. pom.xml 文件中修改自动生成的 junit 测试版本为 4.12 版本;
    在这里插入图片描述

3.2.2 Maven 的构建命令

实验三:执行 Maven 的构建命令

  1. 注意: 运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录;
  2. 清理操作,删除 target 目录:mvn clean
  3. 主程序编译,将 src/main/java 目录下的 java 文件编译成 class 文件:mvn compile;测试程序编译,将 src/test/java 目录下的 java 文件编译成 class 文件:mvn test-compile;编译完之后放到 target 目录下:

在这里插入图片描述
在这里插入图片描述

  1. 执行测试程序,执行完之后放在 target 目录下:mvn test

在这里插入图片描述

  1. 执行打包程序,执行完之后放到 target 目录下:mvn package

在这里插入图片描述

  1. 执行安装程序,安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库,你之前定义的坐标这个时候就是你本地仓库的文件加密名称:mvn install

在这里插入图片描述

3.2.3 查看当前工程所依赖的 jar 包命令

  1. 列表形式:mvn dependency:list
  2. 树形结构:mvn dependency:tree
  3. 列表中展示的 jar 包格式包括的信息如下:
    在这里插入图片描述

3.3 创建 Maven 版的 Web 工程(实验四:打包版本错误)

  1. 新建一个 web 工程命令:mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

在这里插入图片描述
2. 修改 pom.xml 文件中的打包方式,其实默认的就是 war 打包方式,但是要确认一下:
在这里插入图片描述
3. 找到依赖信息的网站,https://mvnrepository.com/:
在这里插入图片描述

  1. 实验四步骤 9 将 Web 工程打包为 war 包即进行 mvn package 的时候报错,原因是低版本的 war 包打包插件不能用来打包高版本的 jdk,maven 使用mvn package命令进行打包, 报错:Error injecting constructor, java.lang.ExceptionInInitializerError;

  2. 将你建好的 web 工程粘贴到 tomcat 对应的 webapps 文件夹下面,运行 tomcat 之后,成功运行,为了方便访问,将文件夹名字修改为,那么访问网址为:http://localhost:8080/demo/index.jsp
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.4 标签的依赖范围

我们在设置依赖的时候如下格式,前三个标签是坐标,最后一个要设置依赖的范围,以后我们打包的时候会有选择的打包:
在这里插入图片描述
在这里插入图片描述

依赖的传递性,只有 compile 范围的标签才能传递:
在这里插入图片描述
注意:

  • 我们每次修改了某一文件的 pom.xml 文件之后,需要重新 mvn clean install 之后,也就是要重新安装到本地仓库之后,其他依赖于这个项目的 项目才能获取到当前项目修改的 依赖信息;

3.5 依赖的继承

父工程中定义某一通用依赖:
在这里插入图片描述
在父工程中自定义属性名来配置某一依赖的版本,真正体现一处修改,处处生效。
在这里插入图片描述
在这里插入图片描述
子工程对父工程的继承:
在这里插入图片描述
在这里插入图片描述

4、IDEA 新建 maven 工程

4.1 创建工程之后的自动导入问题

  1. 我们的 File | Settings | Build, Execution, Deployment | Build Tools | Maven | Importing 设置中根本没有老师说的 Import Maven projects automatically,即自动导入 jar 包的功能;
  2. 解决方法:IDEA 2020 新版本自动导入MAVEN依赖的解决方法(快捷键自动导入);
  3. 你可以每次都点击右上角跳出来的小图标,也可以设置一个快捷键一键导包。

4.2 maven 配置完成之后报错

按如下操作修改 maven 对应路径:
在这里插入图片描述
修改完之后本地仓库的位置自动做了修改:
在这里插入图片描述
但是在我们修改 settings 配置文件的时候报错:

在这里插入图片描述
在这里插入图片描述
这里就是由于 maven 版本太高,与 idea 版本不匹配所导致的;直接回到第 2 节按照步骤重新安装对应的 maven 版本。

参考文献:

  1. 2021.3.2版本idea配置maven出现org.codehaus.plexus.component.repository.exception.ComponentLookupException
  2. IDEA版本与MAVEN版本对应关系,及历史MAVEN版本下载

4.3 maven 配置一劳永逸的方法

这里配置的这个只对其他 project 有效,对当前工程无效:

在这里插入图片描述
在这里插入图片描述

下面两步选择 JDK 和 JRE 的时候一定要和你 settings 中配置的基础 JDK 的版本对应上。

在这里插入图片描述

在这里插入图片描述

重新打开一个项目看一下,配置成功了,如果没有的话需要再来一遍应该就可以了。

4.4 创建 Web 模块工程

参考文献:

  1. IDEA中创建Maven Web项目的两种方法

4.4.1 第一种方式(不使用骨架)

参考链接:

  1. 第四节 创建Web模块工程,这是一种需要自己手动修改 webapp 的路径的方法,有点麻烦还容易出错;

  2. 接下来我们使用挪动的方法:

  3. 我们先创建一个 JAVA 模块,然后在里面添加一个 web 模块,

这里新建 module 不勾选下面的这些模板:

在这里插入图片描述

这边我们自己写模块名字,我们在父工程下面创建子工程的时候,模块的 GroupId 是自动生成的,与父工程的一致

在这里插入图片描述

修改 web 模块的打包方式:
在这里插入图片描述

在当前 module 下面新增一个 web 模块:

在这里插入图片描述
在这里插入图片描述

这个时候工程目录还不对,文件名也不对,我们右键先修改文件夹名称,这个文件夹名称是固定的,一种规定:

在这里插入图片描述
在这里插入图片描述
然后我们将它拖动到 src/main 文件夹下面:

在这里插入图片描述

同时确保这两个文件的目录是正确的,如果是拖动过去的,下面这个文件夹需要修改:

在这里插入图片描述

现在好了,我们配置 tomcat 看看能不能运行,不会配置 tomcat 的看我之前的笔记,不详细讲:
在这里插入图片描述

在这里插入图片描述
网页展示:

在这里插入图片描述

4.4.2 第二种方式(使用骨架的方式)

这里我使用这种方式创建出来的 webapp 模块还不是 web 模块,上面没有蓝色小圆圈,还得自己手动添加,或者 选择 import web.xml 的方式 进行导入。

添加 web 模块的两种方法:
  1. 方法一:

在这里插入图片描述
在这里插入图片描述

将这两个地方的路径修改正确之后应用即可:

在这里插入图片描述

  1. 方法二:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后修改对应的两处路径:

在这里插入图片描述

java 和 resources 包为灰色的原因
  1. 一种原因是 maven 版本太高,你创建 java 文件夹不能识别;
  2. 另一种原因是你之前创建过同名文件然后删除了之后,但是父模块中的 pom.xml 文件中的聚合还没有删除,又创建了新的有冲突;
  3. 还有一种情况是文件处于被忽略状态,到 File | Settings | Build, Execution, Deployment | Build Tools | Maven | Ignored Files 把文件前面的对勾去掉就可以了。

在这里插入图片描述

参考链接:

  1. IntelliJ IDEA 在main包下面创建Java子包时,Java呈灰色,下面是一种情况以及解决方式。
  2. IDEA中Maven的module是灰色的解决办法

4.4.3 war 包打包的时候报错

参考链接:

  1. idea Cannot access defaults field of Properties的解决方法

这里还是由于打包插件的版本过低,在 pom.xml 文件中定义打包插件的把呢版本即可,参考 3.3 节,好像定义过一次之后,之后自动使用高版本插件了,后来即使我没有定义,也没有报错。

这篇关于(尚硅谷)Maven 新版教程 - 锦囊一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/203609

相关文章

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用