Maven 中 -DskipTests 和 -Dmaven.test.skip=true 是两种常用的跳过测试参数,但它们的执行机制和应用场景有显著区别。以下是基于最新信息的对比分析:
1. 核心区别
| 特性 | -DskipTests |
-Dmaven.test.skip=true |
|---|---|---|
| 测试代码编译 | ✅ 编译测试类到 target/test-classes |
❌ 完全跳过测试代码的编译 |
| 测试执行 | ❌ 不执行测试用例 | ❌ 不执行测试用例 |
| 影响的插件 | 仅 maven-surefire-plugin(单元测试插件)和 maven-failsafe-plugin(集成测试插件) |
maven-compiler-plugin(编译插件)和测试插件 |
| 属性类型 | Maven 内置属性,无需声明 | 用户自定义属性,需在 pom.xml 显式配置(但命令行可直接覆盖) |
| 构建速度 | 较快(仅跳过执行) | 更快(跳过编译和执行) |
2025/10/10大约 2 分钟