在 CentOS 上优化 Java 编译速度,可以从 JDK 选择、编译工具、系统资源、代码与依赖、并行与缓存 等多个方面入手。下面按优先级和可操作性给你一套实用方案。
javacyum install java-17-openjdk-devel
Java 编译吃内存,默认太小会频繁 GC。
export MAVEN_OPTS="-Xmx2g -XX:+UseG1GC"
export GRADLE_OPTS="-Xmx4g -XX:+UseG1GC"
javac -J-Xmx2g ...
mvn clean package -T 4 -o
-T 4:4 线程并行-o:离线模式(已下载依赖时)推荐配置:
mvn -T 1C clean install
1C = 每 CPU 核心 1 线程
./gradlew build --parallel --daemon
gradle.properties:
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4g
Java 编译会打开大量文件:
ulimit -n 65535
永久生效:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
.m2 / .gradle / 源码目录放 SSDsetenforce 0
或
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
~/.m2/repository
~/.gradle
mvn -pl module-a -am package
export JAVA_HOME=...
sccache --start-server
export RUSTC_WRAPPER=sccache
对 javac 支持有限,但 Gradle 可用
org.gradle.caching=true
✅ JDK ≥ 11
✅ 内存 ≥ 4G(编译进程)
✅ 并行编译开启
✅ SSD + 高 nofile
✅ 不频繁 clean
✅ 本地仓库缓存
如果你愿意,可以告诉我:
我可以直接给你一套 针对你项目的编译加速配置。