Maven入门与开箱即用

在这里插入图片描述

一、初识 Maven(了解)

1、项目遇到的问题

  • 构建:编译代码,运行测试,打包,部署应用,运行服务器等;
  • 依赖:项目依赖大量的第三方包,第三方包又依赖另外的包,对依赖包的管理非常麻烦。

2、Maven 定义和作用

  • Maven 翻译为“知识的积累”,“专家”,“行家”,是一个跨平台的项目管理工具;

  • Maven 主要用作基于 Java 平台的项目(Maven 本身也是 Java 编写的)的构建、依赖包管理和项目信息管理;

  • Maven 能提供一种项目的配置,配置好的项目,只需要运行一条简单的命令,就能完成重复的,繁琐的构建动作;

  • Maven 能提供一种项目的依赖配置,配置好的项目,Maven 能自动的从 Maven 的中央仓库中帮我们下载并管理项目依赖的 jar 包,并且还能自动的管理这些 jar 包依赖的其他 jar 包;

  • Maven 提供了一种标准的项目目录结构,测试命名规则等项目的最佳实践方案,统一了不同项目的学习成本(约定大于配置)。

二、Maven 安装(掌握)

1、检查 JDK 的版本

因为 Maven 不同的版本对 JDK 是有要求的,具体请看官网。
在命令行输入 java -version,查询安装 JDK 是否正确并查询安装的版本。若没有配置好的话,按照以下步骤配置好:

  • 添加 JAVA_HOME,需要指向 JDK 安装目录;
  • 添加 PATH,添加 %JAVA_HOME%\bin。

2、安装 Maven

把 apache-maven-x.x.x-bin.zip 解压到目录中(目录路径最好不要有空格和中文)。

3、配置环境变量

  • 配置环境变量,MAVEN_HOME,指向 maven 的根目录;
  • 配置环境变量 Path,将 %MAVEN_HOME%\bin 追加到 Path 中。

3.1、Win10 配置

在用户变量添加 MAVEN_HOME 配置maven 的根路径

在这里插入图片描述

在path 上引用 MAVEN_HOME 变量,加入 bin 来配置环境变量

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4、验证 Maven 安装

打开命令行窗口,输入入 mvn –v 执行,若执行类似如下效果即代表安装成功。

在这里插入图片描述

三、Maven Hello World(了解)

在这里插入图片描述

把事先准备好的 Maven 项目,在命令行下输入命令试下:

  • mvn compile:编译
  • mvn clean:清除
  • mvn test:测试
  • mvn package:打包
  • mvn install:打包,本地仓库也放一份

四、Maven 设置(掌握)

1、本地仓库

运行过 Maven 命令才会在你的用户目录生成一个 .m2 目录,该目录下有个目录名 repository,这个就是所谓的本地仓库,主要存放是一些下载的 jar 文件。

本地仓库默认位置在用户目录/.m2/repository,本地仓库不建议在系统盘,最佳实践:

  • 将 Maven 根目录的 conf/settings.xml 拷贝到 .m2 中,作为个人 Maven 配置文件;
  • 在 settings.xml 文件中 修改本地仓库的位置。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!-- 本地仓库地址 --><localRepository>你本地仓库的目录位置</localRepository>
</settings>

2、配置中央仓库镜像

在有网情况下,官方中央仓库服务器在国外,所以很大可能出现下载失败的问题,所以我们配置一个中央仓库的镜像来降低下载失败的概率。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!-- 本地仓库地址 --><localRepository>你本地仓库的目录位置</localRepository><mirrors><!-- 阿里仓库镜像 --><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors>
</settings>

五、IDEA 中 Maven 的配置(掌握)

配置安装的 Maven,设置 setttings.xml 和本地仓库。

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

六、搭建基于 Maven 构建的 JavaSE 项目(掌握)

1、创建项目

1.1、选择建的是 New Project 项目

在这里插入图片描述

确定后之后点击 Create。

2、pom.xml 文件

用于填写项目信息,打包方式,添加依赖及插件等。

修改项目的版本信息
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.wolfcode</groupId><artifactId>maven-se</artifactId><version>1.0.0</version></project>

3、添加依赖

3.1、利用索引添加依赖

所谓建索引,就对本地仓库的依赖建立索引,若本地仓库存在 10 个依赖,那么在添加的时候可以搜索得出来,很方便在 pom.xml 添加。但注意搜索得出来是本地仓库已有的前提下。而这个索引在 IDEA 开发工具会自动建好,直接使用即可(有时候索引会建立失败,无法提示)。

3.1.1、添加 dependencies 元素

在这里插入图片描述

3.1.2、添加 dependency 元素

在这里插入图片描述

3.1.3、填选依赖名称

在这里插入图片描述

3.1.4、选择依赖的版本

在这里插入图片描述

3.1.5、填写依赖的作用域

在这里插入图片描述

3.1.6 Maven刷新,更新依赖

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

在这里插入图片描述

3.1.7、验证依赖添加成功

在这里插入图片描述

3.2、网站搜索拷贝添加依赖

搜索依赖的网站。

3.2.1、在搜索栏中输入要添加的依赖

在这里插入图片描述

3.2.2、选择所要的依赖和其版本

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

3.2.3、拷贝对应配置到 pom.xml 中

在这里插入图片描述

4、使用 Maven 命令

在 Maven Projects 窗口,双击对应命令即可:

在这里插入图片描述

七、搭建基于 Maven 构建的 JavaWeb 项目(掌握)

1、创建项目

1.1、选择建的是 Maven 项目

在这里插入图片描述

确定后之后点击 Next。

在这里插入图片描述

填完之后点击 Next。

1.2、修改项目版本和JDK版本

在 pom.xml 修改:

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.wolfcode</groupId><artifactId>maven-web</artifactId><!--修改项目版本--><version>1.0.0</version><name>maven-web</name><packaging>war</packaging><properties><!-- 字符集 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 修改JDK 的编译和运行版本 --><maven.compiler.target>11</maven.compiler.target><maven.compiler.source>11</maven.compiler.source></properties>
</project>

1.3、删除Junit 相关配置

删除 JUnit 相关配置,自行配置 JUnit 依赖

 <dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version><scope>runtime</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency>
</dependencies>

注意:JUnit 依赖可以在@Test 上提示导包的方式来导入

1.4 删除默认的 war 包插件,配置 Tomcat 插件

<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port> <!-- 端口 --><path>/</path> <!-- 上下路径 --><uriEncoding>UTF-8</uriEncoding> <!-- 针对 GET 方式乱码处理 --></configuration></plugin></plugins>
</build>

2、启动项目

在这里插入图片描述

八、概念解释(了解)

1、坐标

1.1、数学中的坐标

在空间中,使用 X、Y、Z 三个向量可以唯一的定位空间中的任意一个点。

1.2、Maven 中的坐标

标识项目或者依赖在仓库中的位置。主要由下面构成:

  • groupId:项目名称,一般使用公司或组织域名倒写,域名具有唯一性,区分不同公司;
  • artifactId:项目中 Maven 项目/模块名称,区分同一个公司的项目;
  • version:项目版本,区分同一个项目不同时期的特点。

2、依赖

配置项目所要依赖的 jar,在 pom.xml 使用 dependency 元素配置,通过坐标先从本地仓库找,若没有再从远程仓库找。

2.1、scope

Maven 在编译,测试,运行的时候,各需要一套 classpath(比如编译的时候会有编译的 classpath,测试的时候会有测试的 classpath)。scope 表明该依赖的项目和三个 classpath 的关系,即表示依赖什么阶段起作用,什么阶段不起作用。

scope 主要可选值:

  • compile:默认,适用于所有阶段,会随着项目一起发布,在编译,测试,运行时都有效;
  • provided:编译和测试阶段使用;典型的如 servlet-api.jar,打包时不需要,容器来提供;
  • runtime:测试和运行阶段使用,用于接口和实现分离,典型的如 JDBC 具体驱动实现;
  • test:测试阶段使用,不会随项目发布,如 JUnit。

在这里插入图片描述

2.2、传递性

Maven 的依赖是具有传递性的,比如 A -> B,B -> C,那么 A 间接的依赖于 C,这就是依赖的传递性,其中 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,C 为 A 的传递性依赖。依赖的传递性可以解决依赖繁琐的问题。

小结

  • 了解 Maven 是什么,为什么要使用 Maven。

    一个项目构建(编译测试运行部署)工具(提供命令给编译测试运行部署)

    添加 jar 方便, 不用我们自己管理 jar

  • 掌握 Maven 安装及配置。

    不是死记硬背, 软件按照配置, 做总结就够, 有图的

  • 熟悉 Maven 项目目录结构,知道什么类型文件放到什么目录里。

    死记硬背, 因为后面经常建这样的项目

  • 掌握在开发工具中搭建基于 Maven 构建 JavaSE 项目。

  • 掌握在开发工具中搭建基于 Maven 构建 JavaWeb 项目。

​ 在 idea 中建项目选择 maven , 输入项目信息

​ 若是 web 项目, 配置打包方式为 war, 提供 web.xml, 在 pom.xml 配置 tomcat 插件, 若要启动项目则通过 Tomcat 插件的命令启动

​ 根据需求来写代码

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenSSL生成CA证书

基本概念 证书类别 根证书&#xff1a;生成服务端证书&#xff0c;客户端证书的基础。自签名。服务端证书&#xff1a;由根证书签发。配置在服务器上。客户端证书&#xff1a;由根证书签发。配置在浏览器、移动APP等客户端上。 认证方式 单向认证&#xff08;Client鉴权Serv…

2022最新版-李宏毅机器学习深度学习课程-P32 Transformer

一、 seq2seq 1. 含义 输入一个序列&#xff0c;机器输出另一个序列&#xff0c;输出序列长度由机器决定。 文本翻译&#xff1a;文本至文本&#xff1b;  语音识别&#xff1a;语音至文本&#xff1b;  语音合成&#xff1a;文本至语音&#xff1b;  聊天机器人&#…

HiQPdf Library for .NET - HTML to PDF Crack

HiQPdf Library for .NET - HTML 到 PDF 转换器 .NET Core&#xff0c;用于 .NET 的 HiQPdf HTML 到 PDF 转换器 &#xff1a;HiQPdf HTML to PDF Library for .NET C# 和 HTML to PDF .NET Core 为您提供了一个现代、快速、灵活且强大的工具&#xff0c;只需几行代码即可创建复…

CSS标点符号换行问题

最近遇到一个奇怪的现象,元素中中文文本正常显示,但是加了一堆符号后中文文本居然换行了. div{width: 200px;border: 1px solid blue;word-break: break-all;} <div>文本</div>经过研究发现&#xff0c;因为标点符号不允许出现在行首和行尾&#xff0c;连带着符号…

echarts 画散点图, x周,y周在指定位置标志一下

文章目录 echarts 画散点图&#xff0c; x周&#xff0c;y周在指定位置标志一下示例一例子二示例三 echarts 画散点图&#xff0c; x周&#xff0c;y周在指定位置标志一下 示例一 let scatterData {data: [[[-0.2, -0.6],[0.4, 0.3],[0.1, 0.4],[0.3, 0.5],[0.09, 0.1],[0.7,…

安卓现代化开发系列——从生命周期到Lifecycle

由于安卓已经诞生快二十载&#xff0c;其最初的开发思想与现代的开发思想已经大相径庭&#xff0c;特别是Jetpack库诞生之后&#xff0c;项目中存在着新老思想混杂的情况&#xff0c;让许多的新手老手都措手不及&#xff0c;项目大步向屎山迈进。为了解决这个问题&#xff0c;开…

NI USB-4431对标国产化4路同步采集卡解决方案

102.4 kS/s , 100 dB , 0.8 Hz AC/DC耦合&#xff0c;4输入/单输出声音与振动设备 USB-4431专为声音和振动应用而设计。输入通道集成了用于加速度计和麦克风的集成电路压电式(IEPE)信号调理功能。四个USB-4431的输入通道可同步对输入信号进行数字化。模拟输出(AO)通道是激励响…

成集云 | 钉钉集成用友T费用报销付款接口 |解决方案

源系统成集云目标系统 方案介绍 钉钉是一款免费沟通和协同的多端平台&#xff0c;提供PC版、Web版和手机版&#xff0c;支持手机和电脑间文件互传。钉钉帮助中国企业通过系统化的解决方案&#xff08;微应用&#xff09;&#xff0c;提升中国企业的沟通和协同效率。应用场景包…

Springboot 集成 Seata

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。Seata官网 1.找到适合的Seata版本 参考&#xff1a;SpringCloudAlibaba S…

Spring Cloud Gateway + Knife4j 4.3 实现微服务网关聚合接口文档

目录 前言Spring Cloud 整合 Knife4jpom.xmlapplication.ymlSwaggerConfig.java访问单服务接口文档 Spring Cloud Gateway 网关聚合pom.xmlapplication.yml访问网关聚合接口文档 接口测试登录认证获取登录用户信息 结语源码 前言 youlai-mall 开源微服务商城新版本基于 Spring…

右击文件或者文件夹使用vscode打开

平常我们在打开项目时&#xff0c;经常会需要快捷打开方式&#xff0c;直接使右键使用编辑器打开&#xff0c;但是有时在安装时忘记了选择 “Add “Open with Code” action to Windows Explorer file context menu” 在Windows资源管理器文件上下文菜单中添加“用代码打开”操…

ubuntu PX4 vscode stlink debug设置

硬件 stlink holybro debug板 pixhawk4 安装openocd 官方文档&#xff0c;但是第一步安装建议从源码安装&#xff0c;bug少很多 github链接 编译安装&#xff0c;参考 ./bootstrap (when building from the git repository)./configure [options]makesudo make install安装后…

服务器带宽忽然暴增,不停的触发告警

问题&#xff1a; 线上环境&#xff0c;服务器的外网下行带宽达到某个阈值&#xff0c;触发告警&#xff0c;查了下服务器的带宽监控信息&#xff0c;是从某个时间开始突然串上去的&#xff0c;然后监控图形非常有规律&#xff0c;都是每秒达到顶峰后&#xff0c;又立马下去了…

IDEA初步入门

1 安装 现在的系统更迭很快&#xff0c;很多软件都只支持win10 和 11了&#xff0c;但我们过时党还在用win7. 所以就必须找到合适的版本。在windows 7 64位系统下&#xff0c;可以使用IDEA 2020.1.4版本。 在Jetbrain官方下&#xff0c;找到历史版本&#xff0c;找到windows版…

php收发邮件的多种方法?

1、添加扩展&#xff1a; # 第一种&#xff1a; composer require php-imap/php-imap # 第二种&#xff1a; composer require phpmailer/phpmailer2、这里采用第二种方式&#xff1a; <?php declare(strict_types1);namespace App\Controller\v1\email;use App\Controll…

怎样利用 AI 大模型,辅助研发管理与效能提升?

AI 大模型已经逐渐渗透到各行各业的应用场景中&#xff0c;在软件研发领域也不例外。在软件研发领域&#xff0c;从需求分析到软件设计&#xff0c;从软件开发到测试&#xff0c;以及最后发布上线&#xff0c;AI 在各个环节都发挥着重要作用。10 月 21 日&#xff0c;思码逸首席…

计算机从内存中读取数组元素

在计算机中&#xff0c;我们可以把内存看成是一些排列好的格子&#xff0c;每个格子对应一个内存地址&#xff0c;那么数据会分散的存储在不同的格子中&#xff1a; 对于数组&#xff0c;计算机会在内存中为其申请一段连续的空间&#xff0c;并且会记下索引为0处的内存地址&…

图像特征Vol.1:计算机视觉特征度量|第二弹:【统计区域度量】

目录 一、前言二、统计区域度量2.1&#xff1a;图像矩特征2.1.1&#xff1a;原始矩/几何矩2.1.2&#xff1a;中心距2.1.3&#xff1a;归一化的中心矩2.1.4&#xff1a;不变矩——Hu矩2.1.5&#xff1a;OpenCv实现矩特征及其应用 2.2&#xff1a;点度量特征2.3&#xff1a;全局直…

Jmeter之JSR223

一、JSR223组件 JSR是Java Specification Requests的缩写,意思是Java规范提案。JSR已成为Java界的一个重要标准. JSR223其实包含了有好几种组件,但是其用法都是一致的,并且都是执行一段代码&#xff0c;主要分类如下&#xff1a; JSR223 PreProcessor JSR223 Timer JSR223 S…

【二叉树经典题目】

根据二叉树创建字符串 本题的关键在于什么情况要省略括号&#xff0c;什么情况不能省略&#xff1a; 左右为空可以省略括号 左不为空&#xff0c;右为空可以省略括号左为空,右不为空不能省略括号 class Solution { public://1.左右为空可以省略括号//2.左不为空&#xff0c;右…