优化 Java 依赖结构可以从依赖管理、模块划分、版本治理、构建效率、安全与可维护性几个维度来做。下面是一套比较系统、可落地的思路和做法。
dependencyManagement + BOMplatform / constraints<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
✅ 好处:
mvn dependency:tree
gradle dependencies
compile 依赖test 依赖误放到 compile| Scope | 建议 |
|---|---|
| compile | 最少化 |
| provided | 容器已提供 |
| runtime | 仅运行需要 |
| test | 不进生产包 |
mvn dependency:analyze
mvn dependency:tree -Dincludes=com.fasterxml.jackson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
exclusions 精准剔除<exclusion>
<groupId>old.lib</groupId>
<artifactId>old-impl</artifactId>
</exclusion>
user-service
order-service
common-utils
✅ 避免:
适合:
module com.example.user {
requires com.example.common;
}
~/.m2/repository--offlinespring-boot-maven-pluginlayered jarmvn org.owasp:dependency-checkLATEST / RELEASE❌ 所有功能塞进 common
❌ 同一个库多个大版本共存
❌ 测试依赖泄露到生产
❌ 手动拷贝 jar 包
❌ 无依赖版本管理
如果你愿意,可以告诉我:
我可以直接给你针对性的优化方案或示例配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。