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 版本,避免系统路径污染。

  1. 安装 SDKMAN!
    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh"
  2. 列出可用 JDK 17 发行版
    sdk list java | grep 17
  3. 安装并设置默认版本(以 Temurin 为例)
    sdk install java 17.0.9-tem
    sdk default java 17.0.9-tem
  4. 验证安装
    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 文件决定了依赖下载速度和仓库策略。以下配置同时优化了国内下载速度和私有仓库支持。

  1. 定位配置文件
    # 全局配置(推荐)
    ~/.m2/settings.xml
  2. 核心配置内容
    <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>
  3. 验证 Maven 与 JDK 绑定
    mvn -version
    # 确认 Java version: 17.0.9 和 Maven home 路径正确

4.4 Git 配置与 SSH 密钥对

Git 配置分为全局身份和 SSH 免密认证两部分。

  1. 设置全局用户信息
    git config --global user.name "Your Name"
    git config --global user.email "your.email@company.com"
  2. 生成 SSH 密钥对(ED25519 算法)
    ssh-keygen -t ed25519 -C "your.email@company.com"
    # 默认路径:~/.ssh/id_ed25519
  3. 将公钥添加到 Git 服务商(GitHub/GitLab)
    cat ~/.ssh/id_ed25519.pub
    # 复制输出内容,粘贴到服务商的 SSH Keys 设置页面
  4. 测试连接
    ssh -T git@github.com
    # 成功输出:Hi username! You've successfully authenticated.

4.5 Docker 安装与镜像加速

Docker 用于本地启动 Kafka、Redis、MySQL 等依赖服务,无需在宿主机安装复杂中间件。

  1. 安装 Docker Desktop(macOS/Windows)或 Docker Engine(Linux)
    # Ubuntu 快速安装
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
  2. 配置镜像加速器(以 Docker Desktop 为例)
    # 在 Docker Engine 配置中添加 registry-mirrors
    {
      "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
  3. 验证安装并运行 hello-world
    docker --version
    docker run hello-world
  4. 安装 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 配置直接影响开发效率。以下步骤针对流式决策链路项目进行优化。

  1. 导入项目
    • File → New → Project from Version Control
    • 粘贴 Git 仓库 URL,选择本地目录
  2. 配置 JDK 和 Maven
    • File → Project Structure → Project → SDK:选择 17
    • File → Settings → Build, Execution, Deployment → Build Tools → Maven:确保 Maven home path 指向 3.9.x
  3. 安装必要插件
    插件名称 用途
    Docker 在 IDE 内管理容器、查看日志
    GitToolBox 增强 Git 状态显示、自动 fetch
    Save Actions 保存时自动格式化代码、优化 import
    Flink Support Flink SQL 语法高亮、作业配置提示
  4. 验证开发环境
    // 在 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 整合所有操作。

本地开发沙箱架构 IntelliJ IDEA (开发入口) JDK 17 (运行时) Maven 3.9 (构建) Git 2.40+ (版本) Docker 24+ (容器) Kafka (消息队列) Redis (缓存) MySQL (持久化) 说明:Docker 负责启动所有中间件容器,IDE 通过 Maven 构建项目并连接容器服务。 Git 管理代码版本,JDK 提供 Flink 作业的运行时环境。

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 是否激活。