Ubuntu 上怎么清理 Java 编译缓存?从项目输出到本地仓库一次讲清

云舒
云舒
发布时间:2026-08-23 | 58人浏览过
原创

前言

Java 项目在 Ubuntu 上跑久了,磁盘空间和构建速度往往最先发出信号,但“缓存太多”并不只是一种情况。本文把项目构建输出、本地依赖仓库、系统临时目录和 IDE 缓存拆开说明,配合具体命令和风险提示,帮助你判断该做轻量清理,还是做一次更彻底的缓存重置。

Java 项目在 Ubuntu 上开发久了,磁盘空间被一点点吃掉,构建时间也可能越来越长。问题通常不只出在项目里的 target 或 build 目录,还可能包括 Maven、Gradle 的本地依赖缓存、系统临时目录,以及 IntelliJ IDEA、Eclipse 生成的 IDE 缓存。

这篇文章按“缓存在哪里、该怎么清、哪些命令风险更高”的顺序来梳理。看完你可以快速判断:是只清当前项目,还是连本地仓库一起重置;哪些操作适合日常处理,哪些应该在确认环境后再执行。

先清项目目录里的构建缓存

如果你只是想解决当前项目构建变慢、编译产物堆积的问题,优先清理项目目录中的构建输出即可。这一层影响最直接,风险也相对可控。

Maven 项目怎么清理

Maven 默认会把编译后的类文件、资源文件等内容放到项目根目录下的 target 文件夹。如果项目目录中包含 pom.xml,可以在项目根目录执行:

mvn clean

这个命令会删除 target 目录及其中内容。

如果你担心清理动作被跳过,也可以使用:

mvn clean -Dmaven.clean.skip=false

Gradle 项目怎么清理

Gradle 项目的构建输出通常位于 build 目录。如果项目根目录中有 build.gradle,可执行:

gradle clean

执行后,build 目录会被清空。

如果除了清理构建结果,还想强制刷新依赖,可以加上:

gradle clean --refresh-dependencies

本地 Maven 和 Gradle 仓库缓存要不要删

项目目录清理完,如果磁盘占用还是很高,下一步就该看本地依赖缓存。Maven 和 Gradle 都会把下载过的 JAR 包和相关元数据保存在用户目录下,时间长了会占掉不少空间。

Java 项目构建缓存与本地依赖缓存的清理位置对照信息图
项目缓存与本地仓库缓存怎么区分把项目目录缓存和用户目录缓存分开看,更容易判断是做快速清理还是做彻底重置。

Maven 本地仓库缓存

Maven 本地仓库默认路径为 ~/.m2/repository,其中 ~ 代表当前用户主目录。清理命令如下:

rm -rf ~/.m2/repository/*

这会删除所有本地 Maven 依赖缓存。下次构建时,相关依赖会重新下载。

Gradle 本地缓存

Gradle 的本地缓存默认位于 ~/.gradle/caches。可执行:

rm -rf ~/.gradle/caches/*

这个目录里不只有依赖包,也可能包含编译缓存等其他内容。删除后,Gradle 后续构建同样会重新拉取和生成需要的文件。

/tmp 里的 Java 临时文件能不能直接删

某些 Java 编译过程会在 /tmp 目录下留下临时文件,例如 .class 临时文件或中间产物。如果你明确要释放系统临时空间,可以执行:

rm -rf /tmp/*

但这一步风险明显更高,因为它删除的是 /tmp 下的全部临时文件,而不只是 Java 相关内容。执行前要先确认没有其他程序正在依赖其中的文件,也不要把它当作日常默认操作。

别忽略 IntelliJ IDEA 和 Eclipse 的缓存

很多时候,构建慢并不完全是命令行工具造成的,IDE 自己也会生成编译输出和索引缓存。尤其在频繁切换分支、升级依赖或导入大型项目后,这一层值得单独处理。

IDE 缓存与系统临时目录的清理方式及风险对比信息图
IDE 缓存与 /tmp 清理的处理方式IDE 缓存通常适合通过菜单清理,而 /tmp 属于高风险操作,适合单独标出来提醒。

IntelliJ IDEA 清理方式

如果你使用 IntelliJ IDEA,可以通过菜单栏进入:

File > Invalidate Caches / Restart

然后选择:

Invalidate and Restart

这样 IDE 会清理缓存并自动重启。除了 IDE 内部缓存外,项目中的 out 目录也常见于编译输出场景。

Eclipse 清理方式

Eclipse 可以通过菜单栏执行:

Project > Clean

然后选择需要清理的项目。如果希望手动处理,也可以删除项目目录下的 bin 文件夹。

动手前要确认的风险和收尾设置

清缓存不复杂,真正容易出问题的是误删正在使用的文件,或者删完后没有预期到依赖会重新下载。正式执行前,建议先确认下面几件事。

先停掉正在运行的 Java 服务

如果目标机器上有正在运行的 Java 应用,缓存文件可能处于占用状态,直接删除容易失败。可以先停掉相关服务,例如:

sudo systemctl stop your-java-service.service

有自定义缓存就先备份

清理操作通常不可逆。如果项目里有需要保留的自定义缓存、编译优化文件或特殊中间产物,应该先备份,再决定是否删除。

想少生成缓存,可以顺手调整配置

如果你的目标不只是清一次,而是后续尽量少产生缓存,也可以顺带调整构建配置:

  • Maven 可在 pom.xml 中配置 <skip>true</skip> 跳过测试编译。
  • Gradle 可通过 --no-build-cache 禁用构建缓存。

这类配置是否合适,取决于你的构建流程和团队习惯。对本地临时排障有帮助,但不一定适合所有开发环境长期启用。

实用判断:到底该清哪一层

如果只是当前项目构建异常,先用 mvn clean 或 gradle clean 往往就够了;如果磁盘空间持续紧张,再考虑删除 ~/.m2/repository 或 ~/.gradle/caches;只有在明确知道问题涉及系统临时文件时,再动 /tmp。至于 IDE 缓存,更适合用在索引异常、编译状态紊乱、菜单清理可直接恢复的场景。

换句话说,清理 Java 缓存最稳妥的顺序是:项目构建输出、依赖仓库缓存、IDE 缓存,最后才是系统临时目录。按这个顺序处理,通常能减少误删和重复下载带来的额外成本。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表