当前位置: 首页 > article >正文

Web后端基础(Maven基础)

https://blog.csdn.net/q20202828/article/details/148459525?spm=1001.2014.3001.5501

这是我总结了一下aliyun私服maven依赖配置+Maven
3.9.1下载安装的操作

Maven的作用

统一项目结构

Maven 还提供了标准、统一的项目结构 。

1). 未使用Maven

由于java的开发工具呢,有很多,除了大家熟悉的IDEA以外,还有像早期的Eclipse、MyEclipse。而不同的开发工具,创建出来的java项目的目录结构是存在差异的,那这就会出现一个问题。

Eclipse创建的java项目,并不能直接导入IDEA中。 IDEA创建的java项目,也没有办法直接导入到Eclipse中。

Maven模型

  • 项目对象模型 (Project Object Model)
  • 依赖管理模型(Dependency)
  • 构建生命周期/阶段(Build lifecycle & phases)

1). 构建生命周期/阶段(Build lifecycle & phases)

以上图中紫色框起来的部分,就是用来完成标准化构建流程 。当我们需要编译,Maven提供了一个编译插件供我们使用;当我们需要打包,Maven就提供了一个打包插件供我们使用等。

2). 项目对象模型 (Project Object Model)

以上图中紫色框起来的部分属于项目对象模型,就是将我们自己的项目抽象成一个对象模型,有自己专属的坐标,如下图所示是一个Maven项目:

坐标,就是资源(jar包)的唯一标识,通过坐标可以定位到所需资源(jar包)位置。

坐标的组成部分:

  • groupId: 组织名
  • arfitactId: 模块名
  • Version: 版本号

3). 依赖管理模型(Dependency)

以上图中紫色框起来的部分属于依赖管理模型,是使用坐标来描述当前项目依赖哪些第三方jar包。

之前我们项目中需要jar包时,直接就把jar包复制到项目下的lib目录,而现在我们只需要在pom.xml中配置依赖的配置文件即可。 而这个依赖对应的jar包其实就在我们本地电脑上的maven仓库中。

导入依赖和排除导入依赖

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.4</version><exclusions><exclusion><groupId>io.micrometer</groupId><artifactId>micrometer-observation</artifactId></exclusion></exclusions></dependency>
</dependencies>

:::warning
注意事项:

  1. 如果引入的依赖,在本地仓库中不存在,将会连接远程仓库 / 中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)
  2. 如果不知道依赖的坐标信息,可以到mvn的中央仓库(https://mvnrepository.com/)中搜索

:::

生命周期:

Maven的生命周期就是为了对所有的maven项目构建进行抽象和统一

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

执行指定生命周期的两种方式:

在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。

在命令行中,通过命令执行。

maven的执行都是通过插件实现的

Maven对项目构建的生命周期划分为3套(相互独立):

  • clean:清理工作。
  • default:核心工作。如:编译、测试、打包、安装、部署等。
  • site:生成报告、发布站点等。

我们常用的并不多,主要关注以下几个:

  • clean:移除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试(junit)
  • package:将编译后的文件打包,如:jar、war等
  • install:安装项目到本地仓库
http://www.lryc.cn/news/2403554.html

相关文章:

  • 学习记录aigc
  • set map数据结构
  • Q: dify前端使用哪些开发框架?
  • 面试题小结(真实面试)
  • 【PmHub面试篇】PmHub中基于Redis加Lua脚本的计数器算法限流实现面试专题解析
  • 计算机网络领域所有CCF-A/B/C类期刊汇总!
  • 有意向往gis开发靠,如何规划学习?
  • 五、查询处理和查询优化
  • 缓解骨质疏松 —— 补钙和补维 D
  • 《PMBOK® 指南》第八版草案重大变革:6 大原则重构项目管理体系
  • Ctrl+R 运行xxx.exe,发现有如下问题.
  • 极智项目 | 基于PyQT+Whisper实现的语音识别软件设计
  • vue+cesium示例:地形开挖(附源码下载)
  • 升级:用vue canvas画一个能源监测设备和设备的关系监测图!
  • Elasticsearch + Milvus 构建高效知识库问答系统《一》
  • 深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
  • leetcode 2434. 使用机器人打印字典序最小的字符串 中等
  • 爆炸仿真的学习日志
  • 【Fiddler抓取手机数据包】
  • [华为eNSP] OSPF综合实验
  • 东芝Toshiba DP-4528AG打印机信息
  • Vue3+Vite中lodash-es安装与使用指南
  • 完美搭建appium自动化环境
  • c++中的输入输出流(标准IO,文件IO,字符串IO)
  • App使用webview套壳引入h5(三)——解决打包为app后在安卓机可物理返回但是在苹果手机无法测滑返回的问题
  • CSS中text-align: justify文本两端对齐
  • 2025年渗透测试面试题总结-ali 春招内推电话1面(题目+回答)
  • C#中的依赖注入
  • Reactor和Proactor
  • 黄晓明新剧《潜渊》定档 失忆三面间谍开启谍战新维度