第三章 开发环境准备:系统要求与依赖安装

环境配置这件事,说简单也简单,说麻烦也麻烦。我见过不少项目,代码本身没毛病,结果卡在环境不一致上——你本地能跑,CI 就崩,换一台机器又不行。所以这一章,咱们就把地基打牢。

3.1 系统要求

先看操作系统。官方支持这三种:

  • Windows:Windows 10/11 64位,或 Windows Server 2016+
  • macOS:macOS 11 Big Sur 及以上(Intel 和 Apple Silicon 都行)
  • Linux:Ubuntu 20.04+、CentOS 7+ 或 Debian 11+

我在项目里踩过一个坑:同事用 Windows 10 1809 旧版本,结果 SDK 的某些底层库依赖 VC++ 运行时,死活装不上。后来升级到 22H2 就解决了。所以,系统版本越新越好,至少保持最新补丁。

最低硬件配置:4GB 内存,20GB 可用磁盘。真实项目里建议 8GB+,IDE + 几个微服务一跑很容易吃掉 6GB。

3.2 关键依赖版本一览

下表列出了核心工具的推荐版本。别问为什么非得用这些版本——我试过 JDK 17 但 SDK 里有个反射写法只兼容 11,调了我半天。老老实实用推荐版。

工具 推荐版本 备注
JDK 11(LTS) 8 已 EOL,17 部分 API 不兼容
Maven 3.8.6+ Gradle 7.5+ 也可以
Node.js 18 LTS 用于前端演示和 mock 服务
Git 2.30+ 老版本可能不认 ssh-rsa 签名
IntelliJ IDEA 2022.3+ 社区版够用

3.3 安装步骤

JDK 安装

我个人习惯用 Adoptium(原 AdoptOpenJDK)。去 adoptium.net 下载 JDK 11,安装后配环境变量。验证:

java -version
# 输出示例:
# openjdk version "11.0.21" 2023-10-17 LTS
# OpenJDK Runtime Environment (build 11.0.21+9)
# OpenJDK 64-Bit Server VM (build 11.0.21+9, mixed mode)

小技巧:用 sdkman(Linux/macOS)或 choco(Windows)管理多版本 JDK,切换特别方便。我在本地同时装了 8、11、17,通过 sdk use 临时切版本测试兼容性。

Maven 安装

直接下载二进制 zip,解压到 C:\tools\maven 或 /opt/maven,把 bin 目录加到 PATH。验证:

mvn -version
# 输出包含 Apache Maven 3.8.6 以及使用的 Java 版本

注意:国内下载 Maven 依赖很慢。我建议配阿里云镜像:

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>central</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

放到 ~/.m2/settings.xml 里。第一次构建能快 10 倍。

Node.js 和 Git

这两个没啥玄学。Node 官网下载 LTS 版本,一路 Next。Git 安装时勾上“Add Git Bash to Windows PATH”。macOS 用 brew 装:

brew install node git

3.4 双人审批 SDK 依赖引入

咱们的 SDK 已经发布到 Maven 中央仓库。在 pom.xml 里加这段:

<dependency>
  <groupId>com.dualsign.approve</groupId>
  <artifactId>dual-approval-sdk</artifactId>
  <version>1.0.0</version>
</dependency>

如果是 Gradle 项目:

implementation 'com.dualsign.approve:dual-approval-sdk:1.0.0'

执行 mvn clean install,第一次会下载几十个依赖。看到 BUILD SUCCESS 就算过了。

曾经有个团队 直接复制了老版本的坐标,group id 写成了 com.oldsign,结果下回来的 jar 全是过时的 API。一定要用我上面给出的最新坐标。版本号可以上 mvnrepository.com 确认。

3.5 验证安装:一个简单的测试

创建一个测试类:

import com.dualsign.approve.DualSignClient;

public class EnvCheck {
    public static void main(String[] args) {
        DualSignClient client = new DualSignClient();
        System.out.println("SDK version: " + client.getVersion());
        System.out.println("双人审批SDK加载成功!");
    }
}

跑一下,输出类似:

SDK version: 1.0.0
双人审批SDK加载成功!

嗯,走到这一步,你的开发环境就准备妥了。

双人审批 SDK 开发环境准备流程 操作系统 JDK 11 Node.js 18 Git 2.30+ Maven / Gradle dual-approval-sdk 依赖 运行测试验证 所有版本建议统一,避免因环境差异导致集成问题

3.6 常见环境问题速查

我整理了一个表格,你们遇到报错可以先对照着查:

现象 大概率原因 解决办法
java.lang.UnsupportedClassVersionError JDK 版本与编译版本不一致 切换 JDK 11,检查 java -version
Could not resolve dependencies Maven 仓库连不上或镜像未配置 检查网络,配阿里云镜像
SDK 类找不到 坐标写错或版本号不对 核对 groupId/artifactId/version
编译时报中文乱码 IDE 编码不是 UTF-8 设置 -Dfile.encoding=UTF-8

我个人习惯:建一个干净目录专门放 SDK 项目,不跟其他工程混。这样依赖冲突一眼就能看出来。实在搞不定就删掉 ~/.m2/repository 重新下载,虽然慢了点,但能治强迫症。