project clean 的作用是删除项目输出目录下的编译产物(如.class、.jsp、.ftl文件)并重置ide构建状态,强制触发重新编译,但不清理.metadata、不修改源码或配置,对maven项目效果有限,需配合maven clean及build使用。

Project Clean 不是万能的,但它确实是解决“改了代码却不生效”的第一道必检关卡。 它不会修复语法错误或路径配置问题,但能强制清掉旧的 .class、.jsp、.ftl 等编译产物,让 MyEclipse 重新触发自动编译流程——前提是你的构建环境本身是健康的。
Project → Clean… 实际做了什么?
它本质是删除项目输出目录(如 WEB-INF/classes)下的所有编译结果,并重置 Eclipse/MyEclipse 的内部构建状态。不是清工作区缓存,也不是删 .metadata,更不碰源码或配置文件。
- 只影响当前选中项目的
bin或自定义 output folder 下的内容 - 不会自动 rebuild,除非你同时勾选了
Build automatically - 对 Maven 项目效果有限:Maven 的
target/目录不受此操作影响 - 如果
Problems视图里有红叉但没报错,Clean 后可能直接消失——说明是 stale 编译残留导致的误报
Maven 项目 Clean 失效时怎么办?
MyEclipse 的 Project Clean 对 Maven 项目常不起作用,因为它的构建逻辑由 Maven 插件控制,而非 IDE 原生 builder。
Eclipse IDE 是一款由 Eclipse 基金会管理的开源、跨平台集成开发环境。其核心基于 Java 构建,通过强大的插件架构可扩展支持 C/C++、Python、PHP 等多种编程语言。它提供丰富的代码编辑、调试和重构工具,并紧密集成 Git、Maven 等现代开发工具链,是全球众多开发者首选的 Java 开发利器。
- 右键项目 →
Run As→Maven clean:真正清掉target/目录 - 紧接着必须做
Maven build(如clean compile)或Maven Update Project,否则 class 文件不会回来 - 检查
pom.xml是否含resources配置遗漏,导致某些.properties或.xml没被复制进target/classes - 若用的是老版本 MyEclipse 内置 Maven(如 3.0.x),建议升级或改用外部 Maven(Window → Preferences → Maven → Installations)
Clean 之后还是不生效?重点查这三处
别急着删工作区或重装,90% 的“Clean 无效”都卡在这几个地方:
-
Project → Properties → Java Build Path → Source:确认Default output folder指向正确路径(例如WebRoot/WEB-INF/classes),且该目录没被 Total Commander、IDEA 或杀毒软件锁住 -
Project → Properties → Java Build Path → Libraries:看有没有带红叉的 JAR,特别是你手动删过又没刷新的依赖;JRE System Library版本是否匹配项目要求(比如用了 JDK 17 但配置的是 JDK 8) - Tomcat 部署缓存:Clean 只清 IDE 编译结果,不清理 Tomcat 的
webapps/yourapp和work/Catalina/localhost/yourapp;必须手动删这两个目录,再重新发布
最易被忽略的是:修改了 Java 类,但调用它的 JSP 或 Servlet 没有同步更新编译输出路径,或者前端 AJAX 默认开了 cache: true——这时候连 Clean 十次也没用,得去改 $.ajax({ cache: false }) 或加时间戳参数。










