在 Ubuntu 上编译 Java 慢,通常可以从硬件、JDK、构建工具、系统配置几个层面来优化。下面按“最常见 → 进阶”给你一套实用方案。
很多“慢”是因为用了默认 OpenJDK + 解释执行或 GC 不适合。
✅ 推荐:
# 示例:安装 Temurin 17
sudo apt install -y wget apt-transport-https
wget -qO - https://packages.adoptium.net/artifests/... | sudo tee ...
并用:
java -version
确认生效。
Ubuntu 默认 JVM 内存很小,编译大项目会频繁 GC。
export MAVEN_OPTS="-Xmx2g -XX:+UseG1GC"
export GRADLE_OPTS="-Xmx4g -XX:+UseG1GC"
或 gradle.properties:
org.gradle.jvmargs=-Xmx4g -XX:+UseG1GC
mvn -T 4 compile
# 或
mvn -T 1C compile
org.gradle.parallel=true
org.gradle.caching=true
如果是虚拟机或老机器:
✅ 检查:
lsblk
看是否在 SSD
如果你装了:
clamav可临时测试:
systemctl stop clamav-freshclam
如果是 WSL / 网络盘: ❌ 不要在:
/mnt/c✅ 放在:
/home/you/projectmvn -o compile # 离线
mvn -pl module -am compile # 只编需要模块
用国内镜像(如果你在中国):
<mirror>
<id>aliyun</id>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
org.gradle.daemon=true
org.gradle.configureondemand=true
清理旧构建:
./gradlew clean build --refresh-dependencies
maven-compiler-plugin 最新版如:
可临时关闭测试:
mvn compile -Dlombok.disable=true
mvn cacher❌ 不要在容器里反复下载依赖
✅ 挂载:
-v ~/.m2:/root/.m2
# 1. JDK 是否合适
java -version
# 2. 内存够不够
free -h
# 3. 磁盘类型
lsblk
# 4. 编译命令是否并行
mvn -T 1C
如果你愿意,可以告诉我:
我可以直接给你一套最优编译参数配置。