应统一JDK版本(如JDK 17)与安装路径(如/opt/jdk-17或C:\dev\jdk-17),禁用包管理器安装;标准化Maven/Gradle版本并使用Wrapper;落地IDE配置模板与检查清单;CI/CD环境须与本地严格对齐。

统一JDK版本与安装路径
团队中每个成员本地的JDK版本不一致,容易导致编译通过但运行报错(如字节码版本不兼容)、IDE行为差异、Maven构建失败等问题。建议明确一个LTS版本(如JDK 17或JDK 21),并约定统一安装路径(例如 /opt/jdk-17 或 C:\dev\jdk-17),避免使用系统默认路径或用户家目录下的随意安装。
- Linux/macOS:用tar.gz包解压到固定路径,通过
/etc/profile.d/java.sh全局配置JAVA_HOME和PATH - Windows:用ZIP解压后,设置系统级环境变量(非用户变量),确保CMD/PowerShell/IDE均能识别
- 禁止直接使用
apt install openjdk-17-jdk等包管理器安装——路径和符号链接不可控,版本更新易失控
标准化构建工具链(Maven/Gradle)
Maven和Gradle本身也存在版本兼容性问题。比如Maven 3.6.x不支持JDK 17的某些新特性,Gradle 7.0+才完整支持JDK 17模块化编译。团队应锁定构建工具版本,并通过项目级配置驱动,而非依赖开发者本地安装。
- Maven:在项目根目录放
mvnw(Maven Wrapper),配合.mvn/wrapper/maven-wrapper.properties指定DISTRIBUTION_URL,确保执行./mvnw compile时自动下载并使用指定版本 - Gradle:使用
gradlew,并在gradle/wrapper/gradle-wrapper.properties中声明distributionUrl,例如https\://services.gradle.org/distributions/gradle-8.5-bin.zip - 所有
mvnw/gradlew脚本需提交进Git,禁止要求成员自行安装全局Maven/Gradle
IDE配置模板与检查清单
IntelliJ IDEA或Eclipse的SDK、编码格式、注释模板、代码风格等若不统一,会导致大量无意义的格式冲突和PR反复修改。不能靠口头约定,要落地为可导入/自动应用的配置。
- IntelliJ:导出
Project Settings → Code Style / Inspections / SDKs为codestyles.jar、inspections.jar,放入项目.idea/或单独仓库,新成员导入即可 - 统一启用
UTF-8编码、LF换行符、4空格缩进,禁用Tab字符;在.editorconfig中声明并提交到Git(IDE插件会自动识别) - 提供一份IDE初始化检查清单(如“是否已设Project SDK为JDK 17”“是否启用了Save Actions插件并配置了Organize Imports”),放在README或Confluence中
CI/CD环境与本地严格对齐
本地跑通但CI失败,90%源于环境不一致。CI服务器(如Jenkins/GitHub Actions)必须复刻本地最小可行环境,而非追求最新版工具。
立即学习“Java免费学习笔记(深入)”;
- GitHub Actions示例:用
actions/setup-java@v4指定java-version: '17'和distribution: 'temurin',确保与本地JDK来源一致 - Jenkins:用Docker Pipeline,基础镜像选
openjdk:17-jdk-slim或eclipse-temurin:17-jre-jammy,避免宿主机JDK污染 - 关键动作加校验:CI第一步执行
java -version && mvn -v && ./mvnw -v,输出日志并截图归档,便于回溯










