三、使用 Maven:命令行环境

发布于:2024-12-06 ⋅ 阅读:(121) ⋅ 点赞:(0)

1. 第一节 实验一:根据坐标创建 Maven 工程

1.1 Maven 核心概念:坐标

①数学中的坐标
在这里插入图片描述

使用 x、y、z 三个『向量』作为空间的坐标系,可以在『空间』中唯一的定位到一个『
②Maven中的坐标
在这里插入图片描述

在这里插入图片描述

③坐标和仓库中 jar 包的存储路径之间的对应关系
坐标:
在这里插入图片描述

上面坐标对应的 jar 包在 Maven 本地仓库中的位置:
在这里插入图片描述

一定要学会根据坐标到本地仓库中找到对应的 jar 包。

1.2 实验操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3 Maven核心概念:POM

在这里插入图片描述

1.4 Maven核心概念:约定的目录结构

在这里插入图片描述

在这里插入图片描述

2. 实验二:在 Maven 工程中编写代码

2.1 主体程序

在这里插入图片描述

主体程序指的是被测试的程序,同时也是将来在项目中真正要使用的程序。
在这里插入图片描述

2.2 测试程序

在这里插入图片描述

在这里插入图片描述

3. 执行 Maven 的构建命令

3.1 要求

运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息:
在这里插入图片描述

在这里插入图片描述

3.2 清理操作

mvn clean
效果:删除 target 目录

3.3 编译操作

主程序编译:mvn compile
测试程序编译:mvn test-compile
主体程序编译结果存放的目录:target/classes
测试程序编译结果存放的目录:target/test-classes

3.4 测试操作

mvn test
测试的报告存放的目录:target/surefire-reports

3.5 打包操作

mvn package
打包的结果——jar 包,存放的目录:target

3.6 安装操作

mvn install

[INFO] Installing D:\maven-workspace\space201026\pro01-maven-java\target\pro01-maven-java-1.0-SNAPSHOT.jar to D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar
[INFO] Installing D:\maven-workspace\space201026\pro01-maven-java\pom.xml to D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.pom

安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的
坐标信息如下:
在这里插入图片描述

在 Maven 仓库中生成的路径如下:

D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar

另外,安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库。所以我们在 Maven 的本地仓库中想看一个 jar 包原始的 pom.xml 文件时,查看对应 XXX.pom 文件即可,它们是名字发生了改变,本质上是同一个文件。

4. 创建 Maven 版的 Web 工程

4.1 说明

使用 mvn archetype:generate 命令生成 Web 工程时,需要使用一个专门的 archetype。这个专门生成 Web 工程骨架的 archetype 可以参照官网看到它的用法:
在这里插入图片描述

参数 archetypeGroupId、archetypeArtifactId、archetypeVersion 用来指定现在使用的 maven-archetype-webapp 的坐标。

4.2 操作

注意:如果在上一个工程的目录下执行 mvn archetype:generate 命令,那么 Maven 会报错:不能在一个非 pom 的工程下再创建其他工程。所以不要再刚才创建的工程里再创建新的工程,请回到工作空间根目录来操作。
然后运行生成工程的命令:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

在这里插入图片描述

4.3 生成的pom.xml

在这里插入图片描述

4.4 生成的Web工程的目录结构

在这里插入图片描述

4.5 创建 Servlet

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.6 在 index.jsp 页面编写超链接

在这里插入图片描述

4.7 编译

在这里插入图片描述

4.8 配置对 servlet-api.jar 包的依赖

对于不知道详细信息的依赖可以到 https://mvnrepository.com/ 网站查询。使用关键词搜索,然后在搜索结果列表中选择适合的使用
在这里插入图片描述

比如,我们找到的 servlet-api 的依赖信息:
在这里插入图片描述

4.9 将 Web 工程打包为 war 包

在这里插入图片描述

4.10 将 war 包部署到 Tomcat 上运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. 让 Web 工程 依赖 Java 工程

5.1 观念

明确一个意识:从来只有 Web 工程依赖 Java 工程,没有反过来 Java 工程依赖 Web 工程。本质上来说,Web 工程依赖的 Java 工程其实就是 Web 工程里导入的 jar 包。最终 Java 工程会变成 jar 包,放在 Web 工程的 WEB-INF/lib 目录下。

5.2 操作

在 pro02-maven-web 工程的 pom.xml 中,找到 dependencies 标签,在 dependencies 标签中做如下配置:
在这里插入图片描述

5.3 在 Web 工程中,编写测试代码

在这里插入图片描述

5.4 执行Maven命令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. 测试依赖的范围

6.1 依赖范围

在这里插入图片描述

在这里插入图片描述

6.2 测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后运行Maven的编译命令:mvn compile
然后看到编译成功。

7. 测试依赖的传递性

7.1 依赖的传递性

在这里插入图片描述

7.2 使用 compile 范围依赖 spring-core

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.3 验证 test 和 provided 范围不能传递

在这里插入图片描述

8. 测试依赖的排除

8.1 概念

在这里插入图片描述

8.2 配置方式

在这里插入图片描述

8.3 测试

在这里插入图片描述

在这里插入图片描述

9. 继承

9.1 概念

在这里插入图片描述

9.2 作用

在这里插入图片描述

9.3 举例

在一个工程中依赖多个 Spring 的 jar 包
在这里插入图片描述

9.4 操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9.5 实际意义

在这里插入图片描述

10. 聚合

10.1 聚合本身的含义

部分组成整体
在这里插入图片描述

动画片《战神金刚》中的经典台词:“我来组成头部!我来组成手臂!”就是聚合关系最生动的体现

10.2 Maven 中的聚合

在这里插入图片描述

10.3 好处

在这里插入图片描述

10.4 聚合的配置

在这里插入图片描述

10.5 依赖循环问题

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到