【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私服仓库

posted @ 2022-07-01 15:47  中国制造  阅读(722)  评论(0编辑  收藏  举报