JavaWeb:Maven(1)

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

  • 中央仓库:在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插件


在这里插入图片描述

5. Maven工程运行调试

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

MySQL全家桶笔记

还有更多面试复习笔记分享如下

Java架构专题面试复习

426635.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0thaVNhckg=,size_16,color_FFFFFF,t_70)

5. Maven工程运行调试

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

[外链图片转存中…(img-g1iTT3Ak-1714330068120)]

还有更多面试复习笔记分享如下

[外链图片转存中…(img-7kU9LZ3x-1714330068121)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值