首页 > 其他分享 >基于 Maven 生成 Spring Boot 项目版本构建版本

基于 Maven 生成 Spring Boot 项目版本构建版本

时间:2024-08-31 11:36:42浏览次数:8  
标签:Spring Boot number maven version 构建 build 版本 版本信息

在软件开发过程中,了解项目的构建版本对于调试、跟踪和管理软件发布至关重要。本文中,将使用 Maven 生成构建时间来为 Spring Boot 项目生成构建版本信息。

一、、使用 Maven 插件生成构建版本

可以使用 Maven 插件来生成构建版本信息。在本文中,我们将使用build-helper-maven-plugin插件来生成时间戳作为构建版本信息。

1. pom.xml 配置

首先,我们需要在项目的pom.xml文件中添加build-helper-maven-plugin插件的配置。以下是配置示例:

<build>
    <plugins>
        <!-- 使用 build-helper-maven-plugin 插件生成时间戳或随机数 -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.6.0</version>
            <executions>
                <execution>
                    <id>generate-random-number</id>
                    <goals>
                        <goal>timestamp-property</goal>
                    </goals>
                    <phase>validate</phase>
                    <configuration>
                        <name>build.number</name>
                        <pattern>yyyyMMdd-HHmmss</pattern>
                        <locale>zh_CN</locale>
                        <timeZone>Asia/Shanghai</timeZone>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- Maven Resources Plugin for filtering properties in resources -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.3.1</version>
            <executions>
                <execution>
                    <id>default-resources</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>resources</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                                <filtering>true</filtering> <!-- 启用资源文件过滤 -->
                            </resource>
                        </resources>
                        <delimiters>
                            <delimiter>@</delimiter>
                        </delimiters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在上述配置中,使用build-helper-maven-plugin插件的timestamp-property目标来生成一个时间戳,并将其存储在build.number属性中。该插件的时间戳的格式默认为UTC时间,可以通过配置地区和时区。

为了在应用程序中使用构建版本信息,需要在资源文件中引用这个属性。我们可以使用maven-resources-plugin插件来进行资源文件过滤。

在上述配置中,启用了资源文件过滤,并设置了资源文件的目录为src/main/resources

2. application.properties

为了在应用程序中使用构建版本信息,我们可以在application.properties文件中定义一个属性,并使用${build.number}来引用生成的构建版本信息。以下是示例:

build.number=devmode
build.version="${build.number}"

在上述配置中,定义了一个分别定义了build.numberbuild.version属性,并将build.version的值设置为${build.number},在使用Idea进行调试时,会使用build.number的属;当使用maven构建项目时,build.version属性将被替换为生成的构建版本信息;
如:

build.number=devmode
build.version="20240831-111514"

3. 应用中使用

接下来,可以在应用程序的代码中使用这个属性。以下是一个使用 Spring Boot 的示例:

@Log4j2
@RestController
@RequestMapping("/common")
public class IndexController {
    @Value("${build.version}")
    private String buildTime;

    @GetMapping("/version")
    public String version() {
        return buildTime;
    }
}

在上述代码中,使用@Value注解将build.version属性注入到buildTime变量中。然后,我们在/version端点中返回这个构建版本信息。

标签:Spring,Boot,number,maven,version,构建,build,版本,版本信息
From: https://www.cnblogs.com/Mageric/p/18390048

相关文章

  • 微信聊天快捷回复工具【PC版本】
     引言在现代客户服务领域,提升响应速度和服务质量是企业不断追求的目标。为此,一些工具被设计来辅助客服人员更高效地进行工作。工具概述易歪歪是一款旨在提高客服聊天效率的辅助工具。它通过以下特点来实现这一目标:话术管理:允许用户存储常用回复话术,以便快速调用。效率......
  • 微信聊天快捷回复工具【PC版本】
     引言在现代客户服务领域,提升响应速度和服务质量是企业不断追求的目标。为此,一些工具被设计来辅助客服人员更高效地进行工作。工具概述易歪歪是一款旨在提高客服聊天效率的辅助工具。它通过以下特点来实现这一目标:话术管理:允许用户存储常用回复话术,以便快速调用。效率......
  • 微信聊天快捷回复工具【PC版本】
     引言在现代客户服务领域,提升响应速度和服务质量是企业不断追求的目标。为此,一些工具被设计来辅助客服人员更高效地进行工作。工具概述易歪歪是一款旨在提高客服聊天效率的辅助工具。它通过以下特点来实现这一目标:话术管理:允许用户存储常用回复话术,以便快速调用。效率......
  • 微信聊天快捷回复工具【PC版本】
     引言在现代客户服务领域,提升响应速度和服务质量是企业不断追求的目标。为此,一些工具被设计来辅助客服人员更高效地进行工作。工具概述易歪歪是一款旨在提高客服聊天效率的辅助工具。它通过以下特点来实现这一目标:话术管理:允许用户存储常用回复话术,以便快速调用。效率......
  • 基于Java+SpringMvc+Vue求职招聘系统详细设计实现
    基于Java+SpringMvc+Vue求职招聘系统详细设计实现......
  • springcloud
    SpringCloudidea微服务项目导入,maven加载过慢方法1方法2简单理解就是将不同功能controller分为两个接口供外部使用......
  • Spring Boot 中优化 if-else 语句的多种方法
    1.为什么要优化if-else语句?1.1if-else语句的弊端if-else语句虽然在处理简单的逻辑判断时非常方便,但在处理复杂业务逻辑时,其劣势逐渐显现出来:代码冗长:随着判断条件的增加,if-else语句会变得冗长,代码显得凌乱。可读性差:长串的if-else语句使代码的逻辑难以快速理解,......
  • 一个linux服务器安装多个java版本,如何选择指定的 java版本去执行
    linux中有时候可能你由于不同的项目需要使用不同版本的javajdk部署,你就需要在你的linux服务中安装很多个版本的javajdk,那么在linux中如何安装和使用不同版本的javajdk呢?1.安装第一个javajdk版本:到java官网下载一个javajdk版本,并解压,然后配置环境变量。javajdk地址:wge......
  • SpringBoot SSM vue在线作业考试系统
    SpringBootSSMvue在线作业考试系统首页图片轮播作业信息通知公告登录注册留言板个人中心我的收藏后台管理登录注册个人中心教师信息管理学生信息管理学院信息管理专业信息管理班级信息管理作业信息管理作业提交管理通知公告管理试卷管理试题管理系统管理......
  • 【SpringBoot】分析 SpringBoot 中的扩展点
    1 前言SpringBoot它给我们留了很多的扩展点,这节我们就看看都有哪些(有的扩展点是基于Spring的,有的我就不具体强调到底是SpringBoot还是Spring的噢)。另外每一种扩展点我们都从两个方面来看:入口时机:入口就是SpringBoot解析或者寻找你自定义的类的时机执行时机:就是Spr......