# 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. **第三阶段**: 考虑微服务拆分