本规范定义了项目中依赖管理的原则和实践,确保依赖项的选择、版本控制和更新符合项目需求,并维护代码的稳定性和安全性。
pom.xml 的 <properties> 标签中定义依赖版本,避免在各依赖声明中硬编码版本号。示例:
<properties>
<spring-boot.version>3.0.13</spring-boot.version>
</properties>
<dependencyManagement> 引入 spring-boot-dependencies BOM 来管理 Spring 生态相关依赖的版本。示例:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
spring-boot-starter:基础启动器spring-boot-starter-web:Web 开发spring-boot-starter-validation:参数校验pom.xml)3.0.133.5.31.4.21.18.24(scope=provided)5.8.225.1.49knife4j-openapi3-jakarta-spring-boot-starter:4.4.0注意:当前 pom.xml 中存在重复声明 spring-boot-starter-validation(出现了两次),建议去重以保持清晰。
<exclusions> 标签排除不需要的传递依赖。示例:
<dependency>
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<exclusions>
<exclusion>
<groupId>org.unwanted</groupId>
<artifactId>unwanted-artifact</artifactId>
</exclusion>
</exclusions>
</dependency>
mvn dependency:tree 分析依赖树,识别冲突。mvn dependency:analyze 检查未使用的依赖。<scope> 限制依赖作用域,如 provided 用于编译时依赖。说明:为降低手动复制属性导致的错误并统一映射规则(例如 Long -> String 的 id 映射),团队可以选择引入映射库(如 MapStruct)以生成高效且可维护的转换代码。此处为可选建议:
pom.xml 中通过 <dependencyManagement> 或 <properties> 约定 MapStruct 及其注解处理器的版本,并在 05-依赖管理规范.md 中记录推荐版本。示例版本:MapStruct 1.5.x(请根据项目的 Spring Boot / Java 版本选择兼容版本)。01-代码风格指南.md 中保留映射示例(手动 copy + 显式 id.toString())作为团队约定。