强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

02 - 环境搭建:JDK 安装、Maven/Gradle、IDE 配置

02 - 环境搭建:JDK 安装、Maven/Gradle、IDE 配置

JDK 安装

选择 JDK 发行版

发行版维护方许可证特点
Oracle JDKOracle商用收费官方版本,商用需付费
Eclipse TemurinAdoptiumGPLv2+CPE最流行的免费发行版
Amazon CorrettoAmazonGPLv2+CPEAWS 优化,长期支持
Azul ZuluAzulGPLv2+CPE多平台,付费支持可选
GraalVM CEOracleGPLv2支持原生编译

💡 推荐使用 Eclipse Temurin(原 AdoptOpenJDK),免费且社区活跃。

Linux 安装

# ---- Ubuntu / Debian ----
# 方式一:apt 安装
sudo apt update
sudo apt install openjdk-21-jdk

# 方式二:SDKMAN!(推荐,管理多版本)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java           # 查看可用版本
sdk install java 21.0.2-tem  # 安装 Eclipse Temurin 21

# 方式三:手动安装
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz
sudo tar -xzf OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz -C /usr/local/

macOS 安装

# 使用 Homebrew(推荐)
brew install openjdk@21

# 链接到系统路径
sudo ln -sfn $(brew --prefix openjdk@21)/libexec/openjdk.jdk \
     /Library/Java/JavaVirtualMachines/openjdk-21.jdk

# 使用 SDKMAN!
curl -s "https://get.sdkman.io" | bash
sdk install java 21.0.2-tem

Windows 安装

# 方式一:winget(推荐)
winget install EclipseAdoptium.Temurin.21.JDK

# 方式二:手动下载安装
# 访问 https://adoptium.net/ 下载 .msi 安装包

# 方式三:Chocolatey
choco install temurin21

配置环境变量

# ~/.bashrc 或 ~/.zshrc
export JAVA_HOME=/usr/local/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.

# 验证安装
java -version
javac -version
echo $JAVA_HOME
# Windows PowerShell
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Eclipse Adoptium\jdk-21", "User")
[Environment]::SetEnvironmentVariable("Path", "$env:JAVA_HOME\bin;$env:Path", "User")

验证输出:

openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)

Maven 安装与配置

安装

# Linux / macOS
sdk install maven        # SDKMAN!
brew install maven       # Homebrew

# Windows
winget install Apache.Maven
choco install maven

配置 ~/.m2/settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0
          https://maven.apache.org/xsd/settings-1.2.0.xsd">

    <!-- 本地仓库路径 -->
    <localRepository>${user.home}/.m2/repository</localRepository>

    <!-- 阿里云镜像(国内加速) -->
    <mirrors>
        <mirror>
            <id>aliyun</id>
            <name>Aliyun Maven Mirror</name>
            <url>https://maven.aliyun.com/repository/public</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

    <!-- 默认 Profile -->
    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <maven.compiler.source>21</maven.compiler.source>
                <maven.compiler.target>21</maven.compiler.target>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            </properties>
        </profile>
    </profiles>
</settings>

创建 Maven 项目

# 使用 archetype 创建项目
mvn archetype:generate \
    -DgroupId=com.example \
    -DartifactId=my-app \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DarchetypeVersion=1.4 \
    -DinteractiveMode=false

# 项目结构
my-app/
├── pom.xml
└── src
    ├── main/java/com/example/App.java
    └── test/java/com/example/AppTest.java

Maven 常用命令

命令说明
mvn clean清理 target 目录
mvn compile编译主代码
mvn test运行测试
mvn package打包(JAR/WAR)
mvn install安装到本地仓库
mvn deploy部署到远程仓库
mvn dependency:tree查看依赖树
mvn versions:display-dependency-updates检查依赖更新

Gradle 安装与配置

安装

# Linux / macOS
sdk install gradle
brew install gradle

# Windows
winget install Gradle.Gradle

Gradle Wrapper(推荐)

# 在项目中生成 wrapper(团队统一版本)
gradle wrapper --gradle-version 8.7

# 使用 wrapper 构建(无需全局安装 Gradle)
./gradlew build
./gradlew test
./gradlew run

创建 Gradle 项目

# 交互式创建
gradle init

# 选项:
# 1. Application(可执行应用)
# 2. Library(库)
# 3. Gradle plugin
# 4. Basic(空项目)

生成的 build.gradle

plugins {
    id 'java'
    id 'application'
}

group = 'com.example'
version = '1.0.0'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.google.guava:guava:33.0.0-jre'
    testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

application {
    mainClass = 'com.example.App'
}

tasks.named('test') {
    useJUnitPlatform()
}

Maven vs Gradle 对比

维度MavenGradle
构建脚本XML(pom.xml)Groovy/Kotlin DSL
速度较慢(增量编译、构建缓存)
灵活性约定优于配置高度灵活
学习曲线中等
市场份额~60%~40%(上升趋势)
大型项目适合更适合
Android不支持官方构建工具

💡 新项目推荐 Gradle,老项目或企业项目很多仍使用 Maven。

IDE 配置

IntelliJ IDEA(强烈推荐)

下载安装

  • 社区版(免费):https://www.jetbrains.com/idea/download/
  • 终极版(付费,学生免费)

关键设置

  1. 配置 JDK:File → Project Structure → SDKs → + → Add JDK
  2. 配置 Maven:Settings → Build → Build Tools → Maven → Maven home path
  3. 推荐插件:
插件用途
Lombok减少样板代码
MyBatisXMyBatis SQL 映射跳转
SonarLint代码质量检查
Key Promoter X快捷键学习
.ignoreGit 忽略文件模板
Rainbow Brackets彩色括号

VS Code

必备扩展

{
  "recommendations": [
    "vscjava.vscode-java-pack",
    "vscjava.vscode-maven",
    "vscjava.vscode-gradle",
    "vmware.vscode-spring-boot",
    "vscjava.vscode-spring-initializr"
  ]
}

settings.json Java 配置

{
  "java.jdt.ls.java.home": "/usr/local/jdk-21",
  "java.configuration.runtimes": [
    {
      "name": "JavaSE-17",
      "path": "/usr/local/jdk-17",
      "default": false
    },
    {
      "name": "JavaSE-21",
      "path": "/usr/local/jdk-21",
      "default": true
    }
  ],
  "java.compile.nullAnalysis.mode": "automatic",
  "maven.executable.path": "/usr/local/bin/mvn"
}

验证完整环境

创建验证脚本 check-env.sh

#!/bin/bash
echo "========== Java 环境检查 =========="

# 检查 Java
if command -v java &> /dev/null; then
    echo "✅ Java: $(java -version 2>&1 | head -1)"
    echo "   JAVA_HOME: $JAVA_HOME"
else
    echo "❌ Java 未安装"
fi

# 检查 javac
if command -v javac &> /dev/null; then
    echo "✅ javac: $(javac -version 2>&1)"
else
    echo "❌ javac 未安装"
fi

# 检查 Maven
if command -v mvn &> /dev/null; then
    echo "✅ Maven: $(mvn -version 2>&1 | head -1)"
else
    echo "⚠️  Maven 未安装(可选)"
fi

# 检查 Gradle
if command -v gradle &> /dev/null; then
    echo "✅ Gradle: $(gradle -version 2>&1 | head -3 | tail -1)"
else
    echo "⚠️  Gradle 未安装(可选)"
fi

echo "====================================="

⚠️ 注意事项

  1. 不要使用过旧的 JDK 版本 — JDK 8 已经 10 年了,缺少大量现代特性,新项目应使用 JDK 17+。
  2. JAVA_HOME 路径不要包含空格或中文 — 可能导致构建工具异常。
  3. 注意 PATH 优先级 — 多个 JDK 版本时,确保 echo $JAVA_HOME/bin/javawhich java 指向一致。
  4. Maven 本地仓库可能占用大量磁盘 — 定期清理:mvn dependency:purge-local-repository

🏢 业务场景

  • 团队协作: 使用 .sdkmanrc 或 Maven Toolchains 统一团队 JDK 版本,避免 “在我机器上能跑” 问题。
  • CI/CD: GitHub Actions / GitLab CI 中使用 actions/setup-java 自动配置 JDK 和 Maven 缓存,加速构建。
  • 多模块项目: 企业项目通常包含数十个模块,Gradle 的构建缓存和增量编译可将构建时间从 10 分钟缩短到 2 分钟。

📖 扩展阅读