maven编译【-Dmaven.test.skip=true和-DskipTests=true的区别】

1、背景

我在执行maven编译时,遇到下面情况:
1、当执行命令为下面:
mvn clean compile package install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -Drat.numUnapprovedLicenses=600 -DskipTests=true -pl=hdfs-agent -Pall -Pbuild-repo
发现还是会编译测试模块的代码,如下图:
在这里插入图片描述
2、而变成下面命令时,便不会编译测试模块的代码了
mvn clean compile package install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -Drat.numUnapprovedLicenses=600 -Dmaven.test.skip=true -pl=hdfs-agent -Pall -Pbuild-repo

2、-Dmaven.test.skip=true和-DskipTests=true的区别

-Dmaven.test.skip=true-DskipTests 都是用于跳过测试的 Maven 参数,但它们有细微的区别

(1)-Dmaven.test.skip=true
  • 跳过测试编译和执行:使用这个参数,Maven 会完全跳过测试的编译和执行过程。这意味着测试代码不会被编译,也不会运行任何测试用例。
  • 影响范围:更为全局。它不仅跳过 Surefire 插件(用于单元测试)的执行,还会跳过其他可能运行测试的插件(如 Failsafe 插件,用于集成测试)。

示例命令:

mvn clean package -Dmaven.test.skip=true
(2)-DskipTests
  • 仅跳过测试执行:使用这个参数,Maven 仍然会编译测试代码,但不会运行测试用例。测试类会被编译并包含在构建输出中,但不会被执行。
  • 影响范围:主要影响 Surefire 和 Failsafe 插件的执行。如果你的构建流程中有其他插件依赖于测试代码的编译,使用这个选项会比较安全,因为测试代码仍然会被编译。

示例命令:

mvn clean package -DskipTests
(3)详细对比
  1. 测试代码编译

    • -Dmaven.test.skip=true:测试代码不会被编译。
    • -DskipTests:测试代码会被编译,但不会被执行。
  2. 插件影响

    • -Dmaven.test.skip=true:会影响所有插件,不仅仅是 Surefire 和 Failsafe 插件。
    • -DskipTests:主要影响 Surefire 和 Failsafe 插件的执行,但测试代码仍会被编译。
  3. 适用场景

    • -Dmaven.test.skip=true:在你确实不需要测试代码的情况下使用,例如快速构建生产版本。
    • -DskipTests:在你需要测试代码编译但不需要执行测试的情况下使用,例如开发阶段需要快速构建但仍然希望确保测试代码编译通过。

3、结论

  • 快速跳过所有测试相关的步骤:使用 -Dmaven.test.skip=true
  • 仅跳过测试执行但保留测试代码编译:使用 -DskipTests

希望这些解释能够帮大家更好地理解这两个参数的区别,并根据需求选择合适的选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/718089.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于自编码器的心电图信号异常检测(Python)

使用的数据集来自PTB心电图数据库,包括14552个心电图记录,包括两类:正常心跳和异常心跳,采样频率为125Hz。 import numpy as np np.set_printoptions(suppressTrue) import pandas as pd import matplotlib.pyplot as plt import…

qss实现登录界面美化

qss实现登录界面美化 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 去掉头部this->setWindowFlag(Qt::FramelessWindowHint);// 去掉空白部分th…

批量修改文件后缀名

背景引言 bat 文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序…

鸿蒙 用tabs的 divider 属性 添加分割线,非常好用

divider10DividerStyle | null 用于设置区分TabBar和TabContent的分割线样式设置分割线样式,默认不显示分割线。 DividerStyle: 分割线的样式; null: 不显示分割线。 添加前: 添加后的效果:

JavaScript-事件监听及对象

添加事件监听 语法:对象名.addEventListener(事件类型,要执行的函数) 作用:当事件触发时,就调用这个函数 事件类型:比如用鼠标点击,或用滚轮滑动,鼠标经过这些 要执行的函数:要做的事 &l…

物联网主机E6000:智慧安防的核心动力

随着科技的不断进步,物联网(IoT)技术已经深入到我们生活的各个领域,尤其是在智慧安防领域,物联网技术的应用正变得越来越广泛。物联网主机E6000作为一款高性能的智能设备,其在智慧安防系统中扮演着至关重要…

海外仓系统有哪些?主流海外仓系统类型、优缺点,不同海外仓如何选择

作为海外仓的经营者,不管海外仓大小,你都应该知道海外仓系统对提升仓库管理效率有多重要。 不过现在市场上的海外仓系统确实种类太多了,想选到一个适合自己海外仓,性价比又比较高的wms海外仓系统也不是一件容易的事情。 本文会详…

小白入手实现AI客服机器人demo

一、环境准备 1 安装python 2 安装vscode 3 安装相关python库 pip install flask flask_cors openai 4.在vscode里安装TONGYI Lingma(AI编程助手) 二、后端搭建 创建一个后端文件夹chatbot,再新建一个app.py的python文件 from flask import Flask, requ…

睿烨蜘蛛池福建官网下载

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? 现在做站群程序的时候,由于百度、搜狗蜘蛛越来越少了,所以缓存也跟着减少,很多人都降低了服务器的配置,这个时候google蜘蛛却疯狂涌入,烦不胜烦…

Airflow任务流调度

0 前言 Airflow是Airbnb内部发起的一个工作流管理平台。使用Python编写实现的任务管理、调度、监控工作流平台。Airflow的调度依赖于crontab命令,与crontab相比,Airflow可以方便地查看任务的执行状况(执行是否成功、执行时间、执行依赖等&…

CMSIS-RTOS2简介

本文介绍CMSIS-RTOS2。 1.引入 CMSIS-RTOS2在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定了通用RTOS接口。应用程序和中间件组件可以使用CMSIS-RTOS2 API在各种软件生态系统中实现更好的代码重用和更简单的集成。 CMSIS-RTOS2还指定了RTOS内核使用的标准OS T…

归并排序的应用—计算逆序对的个数

归并排序的应用—计算逆序对的个数 什么是逆序对题目的思路 题目 如果你还不会归并排序,那么请你先学会它,再来看本篇文章效果更佳。 什么是逆序对 逆序对的定义:在一个数列中,如果前面的数字大于后面的数字,那么这两…

NTP8835数字功放-智能投影仪音频解决方案

数字功放是智能投影仪音频解决方案的一种重要技术;与传统的模拟功放相比,数字功放具有更高的效率和更低的失真;在智能投影仪中应用数字功放技术,可以提供更清晰、更真实的音频效果,为用户带来更好的听觉体验。 数字功放…

Shell脚本(.sh文件)如何执行完毕之后不自动关闭?

Shell脚本异常傲娇,出错后、执行完根本不给你机会让你查看报错信息、输出信息,直接闪退。 废话不多说,调教方法如下,直接在Shell脚本末尾加上如下代码: 1、实现方式一 1.1 使用read命令达到类似bat中的pause命令效果…

转型AI产品经理(11):“损失规避”如何应用在Chatbot产品中

损失规避是行为经济学和心理学中的一个重要概念,它揭示了人们在面对潜在的收益和损失时,表现出对损失的强烈偏好避免,相比于获得同等价值的利益,人们对损失的感受更为强烈。它主要有以下特征: 1、不对称性 损失规避体…

jvm必知必会-类的生命周期图文详解

类的生命周期描述了一个从加载、使用到卸载的过程; 而其中的 连接 部分又分为一下三个阶段: 验证准备解析6.1 加载阶段 Loading阶段第一步是 类加载器 会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java代码扩展不同的渠道。 比如通过 …

【前端】Nesj 学习笔记

1、前置知识 1.1 装饰器 装饰器的类型 declare type ClassDecorator <TFunction extends Function>(target: TFunction) > TFunction | void; declare type PropertyDecorator (target: Object, propertyKey: string | symbol) > void; declare type MethodDe…

AI在线创作歌曲智能绘画对话三合一源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在数字化时代背景下&#xff0c;艺术与技术的融合正以前所未有的速度推进&#xff0c;催生出一系列创新应用。为了满足创作者对多元化、高效能创作工具的需求&#xff0c;我们自豪地推出了“AI在线创作歌曲、智能绘画对话三合一源码系统”。这一系统不仅实现了音乐、…

关于事务流的思考

关于事务流的思考 1 事务流业务分析 ​ 不同业务可能有不同的审核流程&#xff0c;而activiti为大家提供了一套公用的审核功能&#xff0c;基于这些功能我们可以根据自己的业务需求组合出我们自己的审核流程&#xff0c;而这里我要实现的事务流有如下功能&#xff1a;角色为结…

springboot整合sentinel接口熔断

背景 请求第三方接口或者慢接口需要增加熔断处理&#xff0c;避免因为慢接口qps过大导致应用大量工作线程陷入阻塞以至于其他正常接口都不可用&#xff0c;最近项目测试环境就因为一个查询的慢接口调用次数过多&#xff0c;导致前端整个首页都无法加载。 依赖下载 springboo…