Maven之依赖管理

本文详细介绍了Maven的依赖管理,包括依赖配置、依赖范围(如compile、test、provided、runtime、system)、传递性依赖、依赖冲突调解、排除依赖、可选依赖和归类依赖的实践。通过实例展示了如何在pom.xml中排除和引入特定版本的依赖,以优化项目的构建过程。
摘要由CSDN通过智能技术生成

Maven三大功能:依赖管理、项目构建、项目知识管理;需要上项目最重要的功能是首先能用Maven正确添加需要的JAR(依赖管理)

classifier:用来帮助定义构建输出的一些附属构建;不能直接定义项目的classifier,因附属构建不是项目直接默认生成的,而是由附加的插件帮助生成。

pom.xml基础配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- modelVersion 指定POM的版本,对于maven2及maven3来说,它只能是4.0.0 -->  
  <modelVersion>4.0.0</modelVersion>
  <!-- groupId、artifactId、version、package和classifier可唯一确定Maven坐标; -->
  <!-- groupId 项目组的ID,一般是com.公司组织名.项目名 -->
  <groupId>com.chensan.app</groupId>
  <!-- artifactId 该项目在项目组中的ID -->
  <artifactId>app-sample</artifactId>
  <!-- version 是项目的版本号,用于维护项目的升级和发布;SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本 -->
  <version>0.0.1-SNAPSHOT</version>
  <!-- Maven项目的打包方式, 有jar、war、pom等方式, 默认打包方式jar -->
  <packaging>jar</packaging>
  <!-- name 一般没有实际的用处, 只是用于标识该项目, Maven产生的文档用 -->
  <name>app-sample</name>
  <!-- 项目主页的URL, Maven产生的文档用 -->
  <url>http://maven.apache.org</url>
  
  <!-- 依赖管理在下面依次会引入 -->
</project>

1. 依赖的配置

依赖可以包含的元素:
groupId,artifactId和version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。
根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个依赖。
type: 依赖的类型,对应于项目坐标定义的packaging。大部分情况下,该元素不必声明,其默认值是jar
scope: 依赖的范围,下面会进行详解
optional: 标记依赖是否可选
exclusions: 用来排除传递性依赖,下面会进行详解

2. 依赖范围

Maven在编译、测试、运行时分别要使用一套classpath,依赖范围就是用来控制依赖与依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系。
Maven有四种依赖范围:
1) compile:编译依赖范围,如果没有指定依赖范围,则默认使用此依赖范围; 对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都使用该依赖;
2) test:测试依赖范围; 在编译主代码和运行项目时无法使用此类依赖。典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;
3) provided:已提供依赖范围,对于编译和测试classpath有效, 但在运行时无效;
4) runtime:运行时依赖范围,对于测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值