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仓库中。

导入依赖和排除导入依赖

xml 复制代码
<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:安装项目到本地仓库
相关推荐
看到我请叫我铁锤7 小时前
vue3中THINGJS初始化步骤
前端·javascript·vue.js·3d
艾莉丝努力练剑7 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
q***25218 小时前
SpringMVC 请求参数接收
前端·javascript·算法
q***33378 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
烛阴8 小时前
从`new()`到`.DoSomething()`:一篇讲透C#方法与构造函数的终极指南
前端·c#
还债大湿兄8 小时前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
q***42828 小时前
SpringBoot Maven快速上手
spring boot·后端·maven
谢尔登8 小时前
defineProperty如何弥补数组响应式不足的缺陷
前端·javascript·vue.js
蓝瑟忧伤8 小时前
前端技术新十年:从工程体系到智能化开发的全景演进
前端
Baklib梅梅9 小时前
员工手册:保障运营一致性与提升组织效率的核心载体
前端·ruby on rails·前端框架·ruby