【Maven】-DskipTests和-Dmaven.test.skip=true的区别
前言
- 项目开发过程中总是会创建一些测试类进行单元测试,但是在使用maven命令对项目打包部署到服务器时,会发现
mvn install
命令会提示一些测试类运行错误,或者说在部署项目时不需要包含测试类,此时我们就可以在maven命令中添加下面其中一组参数即可实现上述需求
Maven中-DskipTests和-Dmaven.test.skip=true的区别
在使用mvn package
命令进行编译、打包时,Maven会执行 src/test/java
中的JUnit
测试用例,有时为了跳过测试,会使用参数-DskipTests
和-Dmaven.test.skip=true
,这两个参数的主要区别是:
- 执行测试用例
- mvn clean package
- 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
- mvn clean package -DskipTests
- 不执行测试用例,也不编译测试用例类
- mvn clean package -Dmaven.test.skip=true
Maven这种命令打包所包含的执行阶段
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段.
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
package命令完成了项目编译、单元测试、打包功能
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库