maven打包命令和跳过单元测试区别

本文详细介绍了Maven的package、install和deploy命令的区别,它们在执行过程中的阶段差异,以及如何跳过单元测试。重点讨论了-DskipTests和-Dmaven.test.skip=true参数的不同,前者会编译但不执行测试用例,后者则完全跳过测试用例的编译和执行。建议在避免因测试用例错误导致打包失败时使用-Dmaven.test.skip=true。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 打包命令执行及其区别
  1. package
    mvn clean package
    依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
  2. install
    mvn clean install
    依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
  3. deploy
    mvn clean deploy
    依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
  4. package、install、deploy异同
    4.1 共同点: 都完成了项目编译、单元测试、打包功能
    4.2 区别
    package :没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
    install :把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
    deploy:把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
二. Maven中-DskipTests和-Dmaven.test.skip=true的跳过测试的区别

在使用第1条中的maven命令进行编译打包的时候,maven会执行项目中的Junit测试用例。

在项目发布的时候,我们不希望再执行测试用例,可以用-DskipTests或者-Dmaven.test.skip=true这两个参数跳过。

区别

  1. -DskipTests:跳过单元测试,但是会继续编译测试用例类的,并生成相应的class文件到target/test-classes下。

  2. -Dmaven.test.skip=true:不但跳过单元测试,也跳过测试用例类的编译。

个人建议:用mvn clean install -Dmaven.test.skip=true来得更直接点,可以避免因单元测试类的编译错误而导致的打包失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值