# Jar包优化方案 - 800MB问题解决 ## 问题分析 当前项目的800MB jar包主要来源于以下几类依赖: ### 1. 系统作用域依赖 (System Scope) - 直接打包 - aspose-words-15.8.0-jdk16.jar (9.8MB) - aspose-cells-8.5.2.jar (5.8MB) - twain4java-0.3.3-all.jar (2.5MB) - jai_core.jar (1.5MB) - agent-1.0.0.jar (224KB) ### 2. 视频处理依赖 (最大体积来源) - javacv + ffmpeg-platform (通常几十MB到上百MB) ### 3. 重复依赖 - jxl依赖重复声明 ### 4. 多余的PDF处理库 - pdfbox, itextpdf, ofdrw-full可能存在功能重叠 ## 优化策略 ### 方案一:功能模块化 (推荐) ```xml com.point.strategy document-processor 1.0.0 runtime ``` ### 方案二:分离部署 - 主应用 (约50-100MB) - 文档处理服务 (独立部署) - OCR服务 (独立部署) ### 方案三:减少scope=system依赖 ```xml com.aspose aspose-words 15.8.0 provided ``` ## 立即可执行的优化 ### 1. 移除重复依赖 ```xml ``` ### 2. 调整视频处理依赖scope ```xml org.bytedeco javacv 1.4.1 provided ``` ### 3. 使用Spring Boot分层打包 ```xml org.springframework.boot spring-boot-maven-plugin com.aspose aspose-words ``` ## 预期效果 优化后可将800MB减少到: - **保守估计**: 200-300MB (70%减少) - **激进优化**: 50-100MB (90%减少) ## 实施建议 1. **第一阶段**: 移除重复依赖,调整scope 2. **第二阶段**: 模块化文档处理功能 3. **第三阶段**: 考虑微服务拆分