最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項(xiàng)目啟動(dòng)時(shí)打印maven打包時(shí)間實(shí)現(xiàn)方式

 更新時(shí)間:2026年01月05日 09:51:40   作者:萬物皆字節(jié)  
文章介紹了通過在pom文件中配置資源過濾和新增一個(gè)配置類來映射properties文件內(nèi)字段,從而在啟動(dòng)時(shí)打印出打包時(shí)間的方法,以減少開發(fā)和運(yùn)維之間的溝通錯(cuò)誤

背景

生產(chǎn)環(huán)境部署的時(shí)候,開發(fā)給的包部署后沒有生效;運(yùn)維說開發(fā)給的包不對(duì),開發(fā)說運(yùn)維沒有部署正確;

于是想著能有一種方法來減少這種錯(cuò)誤,啟動(dòng)的時(shí)候把打包的時(shí)間打印出來;

pom文件配置

在pom文件中新增properties,maven打包的時(shí)候會(huì)讀取該配置:

<properties>
        <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssXXX</maven.build.timestamp.format>
</properties>

新增一個(gè)properties文件

在資源目錄新增一個(gè)properties文件,注意這里一定是一個(gè)properties文件,不能是yaml

內(nèi)容如下即可:

# maven 打包時(shí)間
build.time= @maven.build.timestamp@

用兩個(gè)@符號(hào)將maven打包可識(shí)別的變量包住

配置pom文件,讓打包的時(shí)候能讓maven編譯時(shí)替換properties文件內(nèi)容

<build>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>

關(guān)鍵配置:filtering 為true

新增一個(gè)配置類映射properties文件內(nèi)字段

import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Objects;

/**
 * maven打包相關(guān)配置類
 */
@Component
@PropertySource(value = {"classpath:xxx.properties"}, encoding = "utf-8")
@ConfigurationProperties(prefix = "build")
@Getter
@Setter
@Slf4j
public class MavenBuildConfig implements InitializingBean {

    /**
     * 打包時(shí)間
     */
    private String time;

    @Override
    public void afterPropertiesSet() throws Exception {
        // utc時(shí)間
        String buildTime = this.getTime();
        if (Objects.nonNull(buildTime) && buildTime.contains("T") && buildTime.endsWith("Z")) {
            try {
                // 自定義格式(UTC 時(shí)間 → 本地時(shí)間字符串)
                Instant instant = Instant.parse(buildTime);
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Utils.YYYY_MM_DD_HH_MM_SS).withZone(ZoneId.systemDefault());
                buildTime = formatter.format(instant);
            } catch (Exception e) {
                log.error("afterPropertiesSet Error: {}", e.getMessage(), e);
            }
        }
        log.info("========================== Maven-Build-Time: {} ==========================", buildTime);
    }
}

啟動(dòng)查看效果

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Jmeter發(fā)送Java請(qǐng)求的實(shí)戰(zhàn)記錄

    利用Jmeter發(fā)送Java請(qǐng)求的實(shí)戰(zhàn)記錄

    JMeter是Apache組織的開放源代碼項(xiàng)目,它是功能和性能測試的工具,100%的用java實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Jmeter發(fā)送Java請(qǐng)求的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • java中雪花算法時(shí)鐘回?fù)軉栴}解決

    java中雪花算法時(shí)鐘回?fù)軉栴}解決

    本文介紹了分布式系統(tǒng)中使用雪花算法生成唯一ID時(shí)可能遇到的時(shí)鐘回?fù)軉栴},以及解決這個(gè)問題的幾種方法,包括等待機(jī)制、擴(kuò)展位、預(yù)留時(shí)間戳或邏輯時(shí)鐘等,感興趣的可以了解一下
    2024-10-10
  • JAVA利用遞歸刪除文件代碼實(shí)例

    JAVA利用遞歸刪除文件代碼實(shí)例

    這篇文章主要介紹了JAVA利用遞歸刪除文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringCloud之服務(wù)注冊(cè)與發(fā)現(xiàn)Spring Cloud Eureka實(shí)例代碼

    SpringCloud之服務(wù)注冊(cè)與發(fā)現(xiàn)Spring Cloud Eureka實(shí)例代碼

    這篇文章主要介紹了SpringCloud之服務(wù)注冊(cè)與發(fā)現(xiàn)Spring Cloud Eureka實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • SpringBoot整合多個(gè)Mq服務(wù)做法詳解

    SpringBoot整合多個(gè)Mq服務(wù)做法詳解

    SpringBoot整合rabbitmq很容易,但是整合的目的是為了使用,那要使用rabbitmq就要對(duì)其有一定的了解,不然容易整成一團(tuán)漿糊。因?yàn)檎f到底,SpringBoot只是在封裝rabbitmq的API,讓其更容易使用而已,廢話不多說,讓我們一起整它
    2023-02-02
  • Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    這篇文章主要介紹了Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • JavaSE、JavaEE和JavaWeb三大工程目錄詳解

    JavaSE、JavaEE和JavaWeb三大工程目錄詳解

    這篇文章主要給大家介紹了關(guān)于JavaSE、JavaEE和JavaWeb三大工程目錄的相關(guān)資料,很多對(duì)java不是很了解的同學(xué)在看到課程?綱的時(shí)候發(fā)現(xiàn)??出現(xiàn)了JavaSE、JavaEE、JavaME、JavaWEB這些詞,搞得?頭霧?,需要的朋友可以參考下
    2023-07-07
  • javaweb實(shí)現(xiàn)app掃碼登錄功能

    javaweb實(shí)現(xiàn)app掃碼登錄功能

    這篇文章主要為大家詳細(xì)介紹了javaweb實(shí)現(xiàn)app掃碼登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • springboot調(diào)用python文件的詳細(xì)方案

    springboot調(diào)用python文件的詳細(xì)方案

    這篇文章主要為大家詳細(xì)介紹了springboot調(diào)用python文件的詳細(xì)方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • Java實(shí)現(xiàn)四則混合運(yùn)算代碼示例

    Java實(shí)現(xiàn)四則混合運(yùn)算代碼示例

    這篇文章主要介紹了Java實(shí)現(xiàn)四則混合運(yùn)算代碼示例,文中展示了詳細(xì)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10

最新評(píng)論

甘孜县| 枣阳市| 怀来县| 西贡区| 高碑店市| 威宁| 宁海县| 黄冈市| 谢通门县| 偏关县| 嘉善县| 乐山市| 黔东| 建平县| 甘南县| 榆树市| 常熟市| 平湖市| 行唐县| 黄骅市| 大埔区| 名山县| 怀化市| 永丰县| 鄂托克旗| 安达市| 秀山| 双流县| 长乐市| 伊通| 太康县| 依兰县| 丰镇市| 蒲江县| 万荣县| 台山市| 怀仁县| 连州市| 盖州市| 新蔡县| 石林|