优化 Java 依赖可以从体积、性能、安全性、可维护性几个维度来做。下面按“常见 → 进阶”给你一套实用清单。
mvn dependency:analyze
关注:
Used undeclared dependencies
Unused declared dependencies
Gradle
gradle dependencies --configuration compileClasspath
或用 gradle-dependency-analyze 插件
✅ 删除:
| 场景 | 重依赖 | 轻量替代 |
|---|---|---|
| JSON | jackson-databind | 按需模块 |
| 工具 | commons-lang3 | 少量静态方法 |
| Web | Spring MVC | Spring WebFlux(视场景) |
| 日志 | log4j + slf4j | logback / log4j2 单实现 |
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
<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>
✅ 好处:
<scope>provided</scope> <!-- 服务器已有 -->
<scope>test</scope> <!-- 仅测试 -->
<scope>runtime</scope> <!-- 编译不需要 -->
module-info.javamvn dependency-check:checkLATEST / RELEASEFROM eclipse-temurin:17 AS build
COPY . .
RUN ./gradlew bootJar
FROM eclipse-temurin:17
COPY --from=build /app/build/libs/*.jar app.jar
❌ 依赖越多越“省事”
❌ 直接 copy 别人的 pom
❌ 不管 transitive dependencies
✅ 原则:只引你真正用到的
如果你愿意,可以:
pom.xml / build.gradle我可以直接帮你做一轮依赖体检 + 优化建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。