程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 依赖管理 - Maven

    • Maven 安装配置
    • Maven 仓库解析
    • Maven 项目构建
    • Maven 依赖管理
    • 手动安装Maven依赖
    • Maven 聚合
    • Maven 继承
    • Maven 属性
    • Maven 版本与测试
      • Maven 版本管理
        • 1. SNAPSHOT(快照版本)
        • 2. RELEASE(发布版本)
        • 3. 版本命名规范
        • 4. 常见的版本标签
      • Maven 跳过测试
        • 1. 使用命令行参数跳过测试
        • 2. 在 Maven 插件中配置跳过测试
        • 3. 使用界面工具跳过测试
        • 4. 跳过测试的常见场景
    • Maven 资源与多环境配置
    • Maven 生命周期与插件
    • 本地搭建Maven私服
    • Docker搭建Maven私服
    • Maven 上传中央仓库
    • Maven 依赖排除插件
  • 开发管理 - Git

  • Git小乌龟教程

  • 代码管理
  • 依赖管理 - Maven
scholar
2024-08-20
目录

Maven 版本与测试

# Maven 版本与测试

  • Maven 版本管理
    • 1. SNAPSHOT(快照版本)
    • 2. RELEASE(发布版本)
    • 3. 版本命名规范
    • 4. 常见的版本标签
  • Maven 跳过测试
    • 1. 使用命令行参数跳过测试
    • 2. 在 Maven 插件中配置跳过测试
    • 3. 使用界面工具跳过测试
    • 4. 跳过测试的常见场景

# Maven 版本管理

在 Maven 中,版本管理是项目生命周期的重要组成部分。合理的版本管理能够确保项目的稳定性,同时也便于团队协作和模块更新。

# 1. SNAPSHOT(快照版本)

  • 定义:快照版本是指项目在开发过程中的临时版本,通常用于协作开发中,以便在模块之间进行频繁的更新和测试。
  • 特点:随着开发的进展,快照版本会不断更新。同一个 SNAPSHOT 版本号可能对应多个构建,随着每次构建,快照版本会被更新。
  • 使用场景:适用于开发阶段,团队成员可以随时获取最新的模块更新进行集成测试。

示例:

<version>1.0.0-SNAPSHOT</version>
1

每次构建 1.0.0-SNAPSHOT 版本时,Maven 都会自动在远程仓库中获取最新的快照版本。

# 2. RELEASE(发布版本)

  • 定义:发布版本是指项目在达到里程碑后,向外部发布的稳定版本。发布版本的构建内容是固定的,不会再进行更改。
  • 特点:发布版本是稳定的,可以用于生产环境。与快照版本不同,发布版本不会被覆盖或更新。
  • 使用场景:适用于项目稳定后的版本发布,供生产环境或外部用户使用。

示例:

<version>1.0.0.RELEASE</version>
1

Spring 等框架的发布版本通常使用这种形式,如 5.1.9.RELEASE。

# 3. 版本命名规范

Maven 推荐的版本命名规范如下:

<主版本>.<次版本>.<增量版本>.<里程碑版本>
1

各部分含义:

  • 主版本:表示项目的重大架构变更,通常是新版本的主要特性或重构。例如:Spring 5 相较于 Spring 4 的版本迭代。
  • 次版本:表示功能增加或重大修复,通常是对现有功能的改进或修复。
  • 增量版本:表示小修复或安全补丁,通常不涉及大范围的功能变化。
  • 里程碑版本:表示项目在某一阶段的稳定性,通常用于发布前的预览版本,如 1.0.0.M1 表示第一个里程碑版本。

示例:

5.1.9.RELEASE
1

此版本表示 Spring 框架的主版本为 5,次版本为 1,增量版本为 9,并标记为发布版本(RELEASE)。

# 4. 常见的版本标签

  • SNAPSHOT:开发中的临时版本。
  • RELEASE:正式发布的稳定版本。
  • M 或 RC:里程碑版本或候选版本(Milestone 或 Release Candidate),通常用于发布前的测试阶段。

# Maven 跳过测试

在项目构建过程中,有时需要跳过测试环节,例如在模块功能尚未完成或需要快速打包时。Maven 提供了多种方式来跳过测试。

# 1. 使用命令行参数跳过测试

在命令行中,你可以通过 -DskipTests=true 参数来跳过测试:

mvn install -DskipTests=true
1
  • -DskipTests=true:跳过所有测试阶段,不执行任何测试用例。

这种方式适用于需要临时跳过测试的场景。

# 2. 在 Maven 插件中配置跳过测试

你也可以在 pom.xml 中通过配置 maven-surefire-plugin 插件来跳过测试:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <skipTests>true</skipTests> <!-- 设置跳过测试 -->
                <includes>
                    <!-- 指定包含的测试用例 -->
                    <include>**/User*Test.java</include>
                </includes>
                <excludes>
                    <!-- 排除指定的测试用例 -->
                    <exclude>**/User*TestCase.java</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

关键点说明:

  • <skipTests>:设置为 true 时,跳过所有测试。
  • <includes> 和 <excludes>:可以灵活指定哪些测试用例需要包含或排除,提供了更细粒度的控制。

# 3. 使用界面工具跳过测试

在一些集成开发环境(如 IntelliJ IDEA)中,可以通过图形界面选择跳过测试。例如,在运行 Maven 构建时,你可以勾选 “Skip Tests” 选项来跳过测试环节。

image-20240820211128048

# 4. 跳过测试的常见场景

  • 功能未完成:模块功能尚未开发完毕,测试用例不可用。
  • 功能调试:调试某个模块时,不希望其他模块的测试用例干扰。
  • 快速打包:需要快速生成构建包,而测试过程可能耗时较长。

注意事项

跳过测试虽然可以加快构建速度,但也会带来潜在的质量风险。在生产环境构建中,建议不要跳过测试环节,以确保项目的稳定性。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
Maven 属性
Maven 资源与多环境配置

← Maven 属性 Maven 资源与多环境配置→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式