JavaWeb:Maven

本文详细介绍了Maven中本地仓库的作用与默认位置,以及远程仓库和中央仓库的使用。还阐述了Maven工程的目录结构、配置、生命周期管理和常用命令,包括IDEA中Maven的配置和项目创建。最后提及了如何解决本地仓库配置错误的问题。
摘要由CSDN通过智能技术生成
  • 本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

默认本地仓库位置在${user.dir}/.m2/repository${user.dir}表示windows用户目录。在这里插入图片描述

  • 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。

远程仓库可以在互联网内也可以在局域网内。

  • 中央仓库:在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

2.2.2 Maven本地仓库的配置

Maven本地仓库的配置

2.2.3 全局setting与用户setting

  • maven仓库地址、私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置。

  • 在maven安装目录下的有 conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置。

  • 如需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认的位置在:${user.dir} /.m2/settings.xml目录中,${user.dir}指windows 中的用户目录。

  • maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

在这里插入图片描述

2.3 Maven工程的认识


2.3.1 Maven工程的目录结构

在这里插入图片描述

作为一个maven工程,它的src目录和pom.xml是必备的。

进入src目录后,我们发现它里面的目录结构如下:

在这里插入图片描述

src/main/java —— 存放项目的.java文件

src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件

src/test/java —— 存放所有单元测试.java文件,如JUnit测试类

src/test/resources —— 测试资源文件

target —— 项目输出位置,编译后的class文件会输出到此目录

pom.xml——maven项目核心配置文件

注意:如果是普通的java项目,那么就没有webapp目录。

2.3.2 Maven工程的运行

进入maven工程目录(当前目录有pom.xml文件),运行tomcat:run命令。

在这里插入图片描述

根据上边的提示信息,通过浏览器访问:http://localhost:8080/maven-helloworld/

在这里插入图片描述

2.3.3 问题处理

如果本地仓库配置错误会报下边的错误

在这里插入图片描述

  • 分析:

maven工程运行先从本地仓库找jar包,本地仓库没有再从中央仓库找,上边提示downloading…

表示 从中央仓库下载jar,由于本地没有联网,报错。

  • 解决:

在maven安装目录的conf/setting.xml文件中配置本地仓库,参考:“maven仓库/配置本地仓库章节”。

3. Maven常用命令

========================================================================

我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译、测试、运行、打包、安装、部署。

3.1 compile


compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。

cmd进入命令状态,执行mvn compile,如下图提示成功:

在这里插入图片描述

查看 target目录,class文件已生成,编译完成。

在这里插入图片描述

3.2 test


test是maven工程的测试命令 mvn test,会执行src/test/java下的单元测试类。

cmd执行mvn test执行src/test/java下单元测试类,下图为测试结果,运行1个测试用例,全部成功。

在这里插入图片描述

3.3 clean


clean是maven工程的清理命令,执行 clean会删除target目录及内容。

3.4 package


package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。

3.5 install


install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。

从运行结果中,可以看出:

当后面的命令执行时,前面的操作过程也都会自动执行,

3.6 Maven指令的生命周期


maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

在这里插入图片描述

3.7 maven的概念模型


Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

在这里插入图片描述

  • 项目对象模型 (Project Object Model)

一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。

  • 依赖管理系统(Dependency Management System)

通过maven的依赖管理对项目所依赖的jar 包进行统一管理。

比如:项目依赖junit4.9,通过在pom.xml中定义junit4.9的依赖即使用junit4.9,如下所示是junit4.9的依赖定义:

junit

junit

4.9

test

  • 一个项目生命周期(Project Lifecycle)

使用maven完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:在这里插入图片描述

maven通过执行一些简单命令即可实现上边生命周期的各各过程,比如执行mvn compile执行编译、执行mvn clean执行清理。

  • 一组标准集合

maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。

  • 插件(plugin)目标(goal)

maven 管理项目生命周期过程都是基于插件完成的。

4. idea开发Maven项目

============================================================================

4.1 idea的Maven配置


  1. setting中搜索Maven设置

在这里插入图片描述

  1. 配置创建工程插件

在这里插入图片描述

4.2 idea中创建一个Maven的web工程


  1. 打开idea,创建新工程在这里插入图片描述

  2. 声明坐标在这里插入图片描述

  3. 确认Maven环境在这里插入图片描述

  4. 初始目录在这里插入图片描述

4.3 依赖范围


scopr可以设置jar包使用范围

在这里插入图片描述

4.4 项目中添加的坐标


在这里插入图片描述

4.5 添加tomcat插件


在这里插入图片描述

4.6 添加JDK插件


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Java高频面试专题合集解析:

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

更多Java架构进阶资料展示

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

[外链图片转存中…(img-23PTX9BO-1712598203087)]

更多Java架构进阶资料展示

[外链图片转存中…(img-EDQbSsZS-1712598203088)]

[外链图片转存中…(img-n3iBwng6-1712598203088)]

[外链图片转存中…(img-cD3kygto-1712598203088)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值