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 显式配置(但命令行可直接覆盖) |
构建速度 | 较快(仅跳过执行) | 更快(跳过编译和执行) |
2022/12/23大约 2 分钟