4. 环境搭建:JDK、Maven、Git、Docker、IDE 的安装与配置
搭建一个稳定、可复现的本地开发沙箱是构建信用额度定价流式决策链路的第一步。本章将指导你完成 JDK、Maven、Git、Docker 以及 IntelliJ IDEA 的安装与核心配置,确保所有工具版本兼容,并能在同一台开发机上协同工作。
4.1 版本选型与兼容性矩阵
流式决策链路对 Java 运行时和构建工具有明确的版本要求。以下矩阵列出了本教程推荐的版本组合及其关键理由:
| 工具 | 推荐版本 | 选型理由 |
|---|---|---|
| JDK | 17 (LTS) | 支持密封类、模式匹配等现代特性;Flink 1.15+ 官方推荐;长期维护至 2029 年。 |
| Maven | 3.9.x | 与 JDK 17 完全兼容;支持并行构建和依赖解析优化。 |
| Git | 2.40+ | 支持 SSH 密钥增强和更安全的哈希算法。 |
| Docker | 24.0+ | 支持 Compose V2;提供更稳定的容器网络和卷挂载性能。 |
| IntelliJ IDEA | 2023.2+ (Ultimate) | 内置 Docker 插件、Flink 支持、Spring 框架深度集成。 |
版本冲突警告: 不要使用 JDK 8 或 JDK 11 运行本教程的 Flink 作业。JDK 8 缺少必要的模块化支持,JDK 11 在 Flink 1.17+ 中已被标记为弃用。请严格遵循上表版本。
4.2 JDK 17 安装与多版本管理
推荐使用 SDKMAN! 管理多个 JDK 版本,避免系统路径污染。
- 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" - 列出可用 JDK 17 发行版
sdk list java | grep 17 - 安装并设置默认版本(以 Temurin 为例)
sdk install java 17.0.9-tem sdk default java 17.0.9-tem - 验证安装
java -version # 输出示例:openjdk version "17.0.9" 2023-10-17 LTS
生产建议: 在 CI/CD 流水线中,建议使用
Dockerfile 中的 eclipse-temurin:17-jdk 镜像锁定 JDK 版本,避免本地与线上环境不一致。
4.3 Maven 配置与国内镜像加速
Maven 的 settings.xml 文件决定了依赖下载速度和仓库策略。以下配置同时优化了国内下载速度和私有仓库支持。
- 定位配置文件
# 全局配置(推荐) ~/.m2/settings.xml - 核心配置内容
<settings> <mirrors> <mirror> <id>aliyun-maven</id> <mirrorOf>central</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors> <profiles> <profile> <id>jdk-17</id> <activation> <jdk>17</jdk> </activation> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> </profile> </profiles> </settings> - 验证 Maven 与 JDK 绑定
mvn -version # 确认 Java version: 17.0.9 和 Maven home 路径正确
4.4 Git 配置与 SSH 密钥对
Git 配置分为全局身份和 SSH 免密认证两部分。
- 设置全局用户信息
git config --global user.name "Your Name" git config --global user.email "your.email@company.com" - 生成 SSH 密钥对(ED25519 算法)
ssh-keygen -t ed25519 -C "your.email@company.com" # 默认路径:~/.ssh/id_ed25519 - 将公钥添加到 Git 服务商(GitHub/GitLab)
cat ~/.ssh/id_ed25519.pub # 复制输出内容,粘贴到服务商的 SSH Keys 设置页面 - 测试连接
ssh -T git@github.com # 成功输出:Hi username! You've successfully authenticated.
4.5 Docker 安装与镜像加速
Docker 用于本地启动 Kafka、Redis、MySQL 等依赖服务,无需在宿主机安装复杂中间件。
- 安装 Docker Desktop(macOS/Windows)或 Docker Engine(Linux)
# Ubuntu 快速安装 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io - 配置镜像加速器(以 Docker Desktop 为例)
# 在 Docker Engine 配置中添加 registry-mirrors { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } - 验证安装并运行 hello-world
docker --version docker run hello-world - 安装 Docker Compose V2(通常已内置)
docker compose version # 输出示例:Docker Compose version v2.24.0
沙箱启动验证: 使用以下命令快速启动一个 Kafka + Zookeeper 环境,验证 Docker 网络和端口映射是否正常:
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.8
docker run -d --name kafka -p 9092:9092 --link zookeeper \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
confluentinc/cp-kafka:7.5.0
4.6 IntelliJ IDEA 配置与插件安装
IDE 配置直接影响开发效率。以下步骤针对流式决策链路项目进行优化。
- 导入项目
- File → New → Project from Version Control
- 粘贴 Git 仓库 URL,选择本地目录
- 配置 JDK 和 Maven
- File → Project Structure → Project → SDK:选择 17
- File → Settings → Build, Execution, Deployment → Build Tools → Maven:确保 Maven home path 指向 3.9.x
- 安装必要插件
插件名称 用途 Docker 在 IDE 内管理容器、查看日志 GitToolBox 增强 Git 状态显示、自动 fetch Save Actions 保存时自动格式化代码、优化 import Flink Support Flink SQL 语法高亮、作业配置提示 - 验证开发环境
// 在 IDE 中创建测试类,运行以下代码 public class EnvCheck { public static void main(String[] args) { System.out.println("JDK: " + System.getProperty("java.version")); System.out.println("Maven home: " + System.getenv("M2_HOME")); System.out.println("Docker available: " + (new java.io.File("/var/run/docker.sock").exists() || System.getenv("DOCKER_HOST") != null)); } }
4.7 本地开发沙箱架构总览
下图展示了所有工具在本地开发机上的协作关系:JDK 提供运行时,Maven 管理依赖,Git 控制版本,Docker 运行中间件,IDE 整合所有操作。
4.8 环境验证清单
完成所有安装后,请逐项核对以下清单,确保沙箱可用:
| 检查项 | 验证命令 | 预期结果 |
|---|---|---|
| JDK 版本 | java -version |
openjdk version "17.0.x" |
| Maven 版本 | mvn -version |
Apache Maven 3.9.x |
| Git 版本 | git --version |
git version 2.40.x |
| Docker 运行 | docker run hello-world |
Hello from Docker! |
| Docker Compose | docker compose version |
Docker Compose version v2.x |
| SSH 连接 | ssh -T git@github.com |
成功认证信息 |
快速故障排查: 如果
mvn compile 失败,优先检查 JAVA_HOME 环境变量是否指向 JDK 17。如果 Docker 拉取镜像慢,确认镜像加速器配置已生效。如果 IDE 无法识别 Maven,检查 settings.xml 中的 JDK profile 是否激活。