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

maven 基础

maven常用命令

clean :清理

compile:编译

test:测试

package:打包

install:安装

maven坐标书写规范

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

maven依赖范围

maven常用依赖范围有四种: 

依赖范围编译时测试时运行时说明
compile有效有效有效默认的依赖范围,适用于项目主代码的依赖
provided有效有效无效适用于已由运行环境提供的依赖,例如servlet-api
runtime无效有效有效适用于只在运行时需要的依赖,例如JDBC驱动
test无效有效无效适用于只在测试时需要的依赖,例如JUnit
  • 编译时(compile time): 依赖项在编译代码时需要。这包括了编译项目的源代码,包括其直接依赖项。

  • 测试时(test time): 依赖项仅在运行测试代码时需要。这包括了运行测试单元时所需的依赖项。

  • 运行时(runtime): 依赖项在项目运行时需要,但在编译时不需要。这主要适用于在运行时动态加载的库。

依赖传递

概念 :假设有三个项目 A、 B、 C ,A依赖于B, B依赖于C ,A其实间接依赖于C  。 举个例子 只导入springMvc这个依赖

可以看到他依赖了spring一系列的依赖,这些依赖也被传递导入到项目中

好处

导入一个依赖,可以传递多个依赖到项目中

坏处

会造成依赖冲突

什么是依赖冲突

我导入了一个aop高版本的 它底下的core是高版本,但是 我webMvc 的core是低版本,与我想要导的包不符这就是依赖冲突

如何解决依赖冲突
1. 第一声明者优先原则:

其实就是按照从上到下的顺序 ,谁在上面,谁的传递依赖就生效

2.依赖调节原则(使用路径近者优先原则):

其实就是传递过来的依赖,不如直接声明的依赖,例如我想要spring-core 4 版本的 ,springmvc是5版本的,springmvc里面有springcore间接依赖传递,而我直接声明spring-core4版本,就会直接使用spring-core4版本

3.排除依赖(exclusions标签)(常用)

可以到加了排除标签后 springmvc里面的springaop消失了

4.版本锁定(使用最多)

第一步版本锁定,但这样并没有把依赖导入到项目中

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>6.0.13</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

第二步 在下面声明依赖的时候不用声明版本

  <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        
      </dependency>
    </dependencies>


http://www.kler.cn/a/152486.html

相关文章:

  • 大屏适配方案(vw、vh)
  • 抑制过拟合——从梯度的角度看LayerNorm的作用
  • Vue3 配置自动导入的步骤
  • Android 11.0 软硬键盘同时使用的兼容(软键盘与内置物理键盘共存)
  • CSS新手入门笔记整理:CSS列表样式
  • 1.自动化运维工具Ansible的安装
  • Linux CentOS7 安装Docker
  • Day51:503.下一个更大元素II、42. 接雨水
  • 全栈软件开发工程师需要具备哪些技能
  • ElementPlus自定义表单验证
  • 删除容器挂载卷打包容器镜像并传到阿里云
  • c++--类型的基础
  • 43.0BaseDao抽取dao公共父类
  • 大数据(十一):概率统计基础
  • STM32/GD32_分散加载
  • Paraformer 语音识别原理
  • Android Audio实战——音频焦点监听(十)
  • 从薛定谔的猫——量子理论基础
  • 设计模式详解(二):抽象工厂——Abstract Factory
  • JavaEE——简单认识CSS