Maven的依赖管理

maven相关依赖的官网:https://mvnrepository.com/

pom.xml是项目依赖的配置文件

maven首先会去本地仓库下载相关依赖,如果没有,则会去私服下载,再没有,就去中央仓库或镜像下载。

自定义properties,可使用${}将属性作为变量引入

<properties>
	<junit.version>5.10.2junit.version>
properties>
<dependencies>
	<dependency>
		<groupId>org.junit.jupitergroupId>
		<artifactId>junit-jupiter-apiartifactId>
		<version>${junit.version}version>
		<scope>testscope>
	dependency>
dependencies>

依赖范围scope

依赖范围 说明
compile 编译依赖范围。默认值,在编译、测试、运行环境下都可使用。依赖关系中可以进行传递
test 测试依赖范围。只有在测试环境下可用,比如:junit
provided 已提供依赖范围。在编译、测试环境下可用,比如:servlet-api(在服务器端已提供此jar包,不需要在运行时再次引入)
runtime 运行时依赖范围。在测试、运行环境下可用,比如:jdbc
system 系统依赖范围。在编译、测试环境下可用,需指定本地依赖路径,可移植性变差,不推荐使用
import 导入依赖范围。

依赖传递原则

  1. 只有当依赖是compile时,才可向上传递
  2. 强制中止依赖传递:true

依赖冲突原则

  1. 路径最短优先原则
    当A依赖B,B依赖Druid-1.2.7,A依赖Druid-1.2.8,则优先使用Druid-1.2.8
  2. 当路径长度相同,先声明优先原则
    当A依赖B,B依赖Druid-1.2.7,A依赖C,C依赖Druid-1.2.8,则按照B、C在dependencies中的顺序决定
  3. 手动依赖排除,exclusions
    手动排除的依赖,不会向上传递
    <dependency>
    	<groupId>com.wyt.mavengroupId>
        <artifactId>maven_cartifactId>
        <version>1.0-SNAPSHOTversion>
        <exclusions>
       		<exclusion>
          		<groupId>com.alibabagroupId>
           		<artifactId>druidartifactId>
         	exclusion>
        exclusions>
    dependency>
    

你可能感兴趣的:(Maven,maven,数据库,java)