跳过单元测试打包的核心是控制maven-surefire-plugin行为,分为跳过执行(-DskipTests)和跳过编译+执行(-Dmaven.test.skip=true);支持命令行临时跳过、pom.xml项目级默认跳过、IDE内置开关及全局配置四种方式。

跳过单元测试打包,核心是控制 `maven-surefire-plugin` 的行为,关键在于区分「跳过执行」和「跳过编译+执行」两种需求。实际用得最多、最稳妥的方式就那么几种,按使用场景分清楚就行。
命令行临时跳过(开发/CI 快速验证)
适合单次构建、不想改代码、或 CI 流水线中动态控制:
-
mvn package -DskipTests:跳过测试运行,但保留测试编译(target/test-classes仍生成),推荐用于本地快速验证——既快又不影响后续调试或 IDE 行为 -
mvn package -Dmaven.test.skip=true:彻底跳过测试编译和运行(不生成test-classes),构建更快,适合纯发布场景,但注意:如果项目里有测试工具类被主代码意外引用,可能编译失败
pom.xml 项目级默认跳过(团队统一策略)
适合 Spring Boot 项目或需要长期关闭测试的环境(如预发包):
- 在
块里加一行:<skiptests>true</skiptests>
Maven 会自动将其注入 surefire 插件,简洁且全局生效 - 或者显式配置插件(更明确,兼容老版本):
<plugin><br><groupid>org.apache.maven.plugins</groupid><br><artifactid>maven-surefire-plugin</artifactid><br><configuration><br><skiptests>true</skiptests><br></configuration><br></plugin>
IDE 内置开关(IntelliJ IDEA 最常用)
不用敲命令、不改配置,适合日常开发一键切换:
- 打开右侧 Maven 工具窗口 → 展开
Lifecycle→ 找到package→ 右键 → 选 Skip Tests(图标通常是闪电⚡或带斜杠的试管) - 也可在
Settings → Build, Execution, Deployment → Maven → Runner中勾选 Skip tests,设为默认
全局跳过(慎用,仅限个人开发机)
影响所有项目,适合本地无测试依赖的纯打包环境:
- 在用户目录下创建
~/.mvn/maven.config文件,写入:-DskipTests
- 之后所有
mvn命令默认跳过测试,无需重复加参数
不复杂但容易忽略:跳过测试只是加速手段,正式发布前务必确认测试已通过,尤其涉及数据库、外部服务的模块。











