1. 基本依赖管理:
a. 在项目根目录创建 pom.xml 文件(如果不存在)
b. 在 pom.xml 的 标签内添加依赖:
<project>
<!-- 其他配置 -->
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>example-library</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
c. 运行 mvn install
下载依赖
2. 依赖范围(Scope):
可以使用 标签指定依赖的范围:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
常用的 scope 值:
- compile(默认):在所有阶段都可用
- provided:编译时需要,但在运行时由 JDK 或容器提供
- runtime:运行和测试时需要,但编译时不需要
- test:仅在测试时需要
- system:类似 provided,但需要显式指定 JAR 文件的位置
3. 排除传递依赖:
使用 标签排除不需要的传递依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.9</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
</dependency>
4. 依赖管理:
在父 POM 中使用 统一管理依赖版本:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.3.9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
5. 属性定义版本:
使用属性定义版本号,方便统一管理:
<properties>
<spring.version>5.3.9</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
6. 查看依赖树:
使用命令 mvn dependency:tree
查看项目的依赖树结构。
7. 解决依赖冲突:
当遇到依赖冲突时,可以使用 或显式声明来解决:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
8. 使用 Maven Profile:
通过 Profile 为不同环境配置不同的依赖:
<profiles>
<profile>
<id>dev</id>
<dependencies>
<!-- 开发环境依赖 -->
</dependencies>
</profile>
<profile>
<id>prod</id>
<dependencies>
<!-- 生产环境依赖 -->
</dependencies>
</profile>
</profiles>
9. 使用 Maven 仓库:
配置额外的 Maven 仓库:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
10. 依赖可选性:
使用 <optional> 标签标记可选依赖:
```xml
<dependency>
<groupId>org.example</groupId>
<artifactId>optional-lib</artifactId>
<version>1.0</version>
<optional>true</optional>
</dependency>
```
11. 依赖分析:
使用 `mvn dependency:analyze` 命令分析项目中未使用和未声明的依赖。