# Salesforce Common 模块依赖说明 ## 概述 本文档详细说明 `datai-salesforce-common` 模块中所有依赖的用途和版本信息。 ## Salesforce 核心 JAR 包(本地依赖) ### 1. partner.jar - **Maven 坐标**: `com.force.api:partner:57.0.0` - **类型**: 本地 JAR 包(system scope) - **路径**: `src/main/resources/lib/partner.jar` - **用途**: Salesforce Partner API - 提供对 Salesforce 数据的访问接口 - 支持标准的 CRUD 操作 - 支持查询、搜索、批量操作 - 适用于大多数数据访问场景 ### 2. metadata.jar - **Maven 坐标**: `com.force.api:metadata:57.0.0` - **类型**: 本地 JAR 包(system scope) - **路径**: `src/main/resources/lib/metadata.jar` - **用途**: Salesforce Metadata API - 提供对 Salesforce 元数据的访问接口 - 支持自定义对象的创建、修改、删除 - 支持字段、页面、布局的元数据操作 - 适用于动态配置和部署场景 ### 3. tooling.jar - **Maven 坐标**: `com.force.api:tooling:57.0.0` - **类型**: 本地 JAR 包(system scope) - **路径**: `src/main/resources/lib/tooling.jar` - **用途**: Salesforce Tooling API - 提供对开发工具的访问接口 - 支持代码部署、测试、调试 - 支持开发者工具集成 - 适用于开发和管理场景 ### 4. apex.jar - **Maven 坐标**: `com.force.api:apex:57.0.0` - **类型**: 本地 JAR 包(system scope) - **路径**: `src/main/resources/lib/apex.jar` - **用途**: Salesforce Apex API - 提供 Apex 代码的执行接口 - 支持异步执行、批处理 - 支持调用 Apex 类和方法 - 适用于业务逻辑执行场景 ## 传输层依赖 ### 5. force-wsc - **Maven 坐标**: `com.force.api:force-wsc:57.0.0` - **类型**: Maven 仓库依赖 - **用途**: Force.com Web Services Connector - 提供 SOAP Web 服务客户端 - 处理与 Salesforce 的通信 - 支持 WS-Security 认证 - 是所有 Salesforce API 的基础通信层 ### 6. httpclient - **Maven 坐标**: `org.apache.httpcomponents:httpclient:4.5.14` - **类型**: Maven 仓库依赖 - **用途**: Apache HTTP Client - 提供高性能 HTTP 客户端 - 支持连接池、重试机制 - 支持多种认证方式 - 用于与 Salesforce API 进行 HTTP 通信 ### 7. httpcore - **Maven 坐标**: `org.apache.httpcomponents:httpcore:4.4.16` - **类型**: Maven 仓库依赖 - **用途**: Apache HTTP Core - 提供 HTTP 协议核心实现 - 支持同步和异步 I/O - 支持连接管理 - 是 httpclient 的基础依赖 ## JSON 处理依赖 ### 8. jackson-databind - **Maven 坐标**: `com.fasterxml.jackson.core:jackson-databind:2.15.3` - **类型**: Maven 仓库依赖 - **用途**: Jackson 数据绑定 - 提供 JSON 对象序列化和反序列化 - 支持复杂对象映射 - 支持 JSON 到 Java 对象的转换 - 用于处理 Salesforce API 返回的 JSON 数据 ### 9. jackson-core - **Maven 坐标**: `com.fasterxml.jackson.core:jackson-core:2.15.3` - **类型**: Maven 仓库依赖 - **用途**: Jackson 核心库 - 提供 JSON 解析和生成 - 支持流式处理 - 是 jackson-databind 的基础依赖 ### 10. jackson-annotations - **Maven 坐标**: `com.fasterxml.jackson.core:jackson-annotations:2.15.3` - **类型**: Maven 仓库依赖 - **用途**: Jackson 注解 - 提供 JSON 序列化/反序列化注解 - 支持 @JsonProperty、@JsonIgnore 等 - 是 jackson-databind 的基础依赖 ## 日志依赖 ### 11. slf4j-api - **Maven 坐标**: `org.slf4j:slf4j-api:2.0.9` - **类型**: Maven 仓库依赖 - **用途**: SLF4J 日志门面 - 提供统一的日志接口 - 支持多种日志实现切换 - 提供占位符、参数化日志 - 用于记录 Salesforce API 调用日志 ### 12. logback-classic - **Maven 坐标**: `ch.qos.logback:logback-classic:1.4.11` - **类型**: Maven 仓库依赖 - **用途**: Logback 日志实现 - 提供 SLF4J 的日志实现 - 支持多种输出格式 - 支持日志滚动、归档 - 用于实际的日志输出 ## XML 处理依赖 ### 13. dom4j - **Maven 坐标**: `org.dom4j:dom4j:2.1.4` - **类型**: Maven 仓库依赖 - **用途**: DOM4J XML 解析器 - 提供高效的 XML 解析和处理 - 支持 XPath 查询 - 支持 DOM、SAX 两种模式 - 用于处理 Salesforce SOAP API 的 XML 消息 ### 14. jaxb-api - **Maven 坐标**: `javax.xml.bind:jaxb-api:2.3.1` - **类型**: Maven 仓库依赖 - **用途**: JAXB API - 提供 Java 对象到 XML 的绑定 - 支持 XML Schema 生成 - 提供 @XmlRootElement 等注解 - 用于处理 Salesforce SOAP API 的 XML 数据 ### 15. jaxb-runtime - **Maven 坐标**: `org.glassfish.jaxb:jaxb-runtime:2.3.1` - **类型**: Maven 仓库依赖 - **用途**: JAXB 运行时 - 提供 JAXB API 的实现 - 支持 XML 序列化和反序列化 - 是 jaxb-api 的基础依赖 - 用于实际的 XML 处理 ## 依赖关系图 ``` datai-salesforce-common ├── Salesforce 核心 JAR 包 │ ├── partner.jar (Partner API) │ ├── metadata.jar (Metadata API) │ ├── tooling.jar (Tooling API) │ └── apex.jar (Apex API) │ ├── 传输层 │ ├── force-wsc (Web Services Connector) │ ├── httpclient (HTTP Client) │ └── httpcore (HTTP Core) │ ├── JSON 处理 │ ├── jackson-databind │ ├── jackson-core │ └── jackson-annotations │ ├── 日志 │ ├── slf4j-api │ └── logback-classic │ └── XML 处理 ├── dom4j ├── jaxb-api └── jaxb-runtime ``` ## 使用场景 ### 1. 数据访问场景 使用 `partner.jar` 进行标准的 CRUD 操作: - 查询 Account、Contact 等对象 - 创建、更新、删除记录 - 批量操作 ### 2. 元数据管理场景 使用 `metadata.jar` 管理自定义对象和字段: - 创建自定义对象 - 添加自定义字段 - 部署元数据 ### 3. 开发工具场景 使用 `tooling.jar` 进行开发和管理: - 部署 Apex 代码 - 运行单元测试 - 调试代码 ### 4. 业务逻辑执行场景 使用 `apex.jar` 执行业务逻辑: - 调用 Apex 类方法 - 执行异步操作 - 批量处理数据 ## 注意事项 1. **本地 JAR 包版本**: 当前假设版本为 57.0.0,如果您的 JAR 包版本不同,请更新 pom.xml 中的版本号 2. **system scope**: 本地 JAR 包使用 system scope,打包时需要确保 JAR 包存在 3. **依赖传递**: 其他模块依赖 `datai-salesforce-common` 后,会自动获得所有这些依赖 4. **版本兼容性**: 确保所有依赖版本之间兼容,避免冲突 ## 更新日志 - 2026-01-21: 初始版本,添加所有 Salesforce 集成相关依赖