mvn clean 默认删除项目根目录下的 target 文件夹及其内容,不依赖 pom.xml 配置,不影响 src、resources 和本地仓库;常见问题包括路径错误、自定义 build.directory 或文件被占用。

直接运行 mvn clean 就能删除 target 目录及其所有内容,这是 Maven 的标准生命周期命令,无需额外配置。
clean 命令的作用和触发时机
clean 是 Maven Clean 生命周期中的唯一阶段,它不依赖项目源码或 pom.xml 中的构建配置,只负责清理——默认就是删除项目根目录下的 target/ 文件夹。它不会影响 src/、resources/ 或本地仓库(~/.m2/repository)。
常用 clean 使用方式
-
单独执行清理:在项目根目录(含
pom.xml的目录)下运行mvn clean -
清理 + 重新编译打包:比如
mvn clean compile或mvn clean package,确保从干净状态开始构建 -
跳过测试的清理打包:如
mvn clean package -Dmaven.test.skip=true,适合快速验证编译结果
注意事项和常见问题
如果执行 mvn clean 后发现 target 没被删掉,通常是因为:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 当前终端不在项目根目录(检查是否在
pom.xml所在路径) - 使用了自定义
build.directory(在pom.xml中修改了<directory>配置),此时 clean 会删对应目录而非默认target - 文件被 IDE 或其他进程占用(如 IntelliJ 正在调试、某些 class 被 JVM 加载),Windows 下可能提示“访问被拒绝”,可关闭相关进程再试
想保留部分 target 内容?
Maven 的 clean 不支持“选择性清理”。如果需要保留日志、生成文档等,建议:
立即学习“Java免费学习笔记(深入)”;
- 把这类输出目录设为独立路径(例如
docs/或logs/),不在target下生成 - 用
maven-antrun-plugin或自定义脚本,在clean后恢复必要文件(不推荐,违背 clean 设计初衷)
不复杂但容易忽略:clean 只删 target,不影响源码和依赖,放心用。

















