欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot如何獲取maven打包時(shí)間

 更新時(shí)間:2024年03月18日 10:44:47   作者:愛碼猿  
這篇文章主要介紹了Spring Boot如何獲取maven打包時(shí)間,首先引入maven打包插件,本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧

Spring Boot 獲取maven打包時(shí)間

1.引入maven打包插件

<build>
    <plugins>
        <!-- 打包時(shí)生成打包時(shí)間 -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <timestampFormat>yyyy-MM-dd HH:mm:ss</timestampFormat>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>create-timestamp</goal>
                    </goals>
                </execution>
            </executions>
            <inherited>false</inherited>
        </plugin>
    </plugins>
    <!-- maven打包時(shí)包含靜態(tài)資源文件 -->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.yaml</include>
                <include>META-INF/**</include>
                <include>**/*.xml</include>
            </includes>
            <!-- true表示maven會對文件進(jìn)行過濾,將@project.version@替換為該屬性的值 -->
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

2.application.properties內(nèi)引用

#獲取build時(shí)的時(shí)間
app.buildTime=@timestamp@
#獲取項(xiàng)目版本
app.version=@project.version@

擴(kuò)展:

SpringBoot項(xiàng)目設(shè)置maven打包時(shí)間

項(xiàng)目調(diào)試過程中會遇到這樣一個(gè)場景,明明修改了代碼,上傳到服務(wù)器重啟后總是會懷疑不是最新的包,為了證明代碼是最更新的,我們通常會在代碼里面輸出一句話以證明代碼是修改之后的,但是這樣做會很麻煩,

每次都要加多余的代碼,有時(shí)候打包之前可能還會忘記加,所有就想著有沒有通用的辦法解決這個(gè)問題,以后就不再為此操心.

  我們一下就能想到的解決方案就是使用maven的打包時(shí)間,那么怎么才能動態(tài)的獲取到maven的打包時(shí)間呢?

  憑借著強(qiáng)大的搜索引擎我找到了兩種方法,在此梳理總結(jié)一下,供大家參考,以便日后查找

第一步要在pom.xml中獲取到打包時(shí)間

在pom.xml文件的properties中添加如下內(nèi)容

<properties>
        <!--指定時(shí)間格式-->
        <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
        <!--maven.build.timestamp保存了maven編譯時(shí)間戳-->
        <timestamp>${maven.build.timestamp}</timestamp>
</properties>

其中timestamp就是maven打包編譯的時(shí)間,但是記錄的時(shí)間是UTC時(shí)間(世界標(biāo)準(zhǔn)時(shí)間),與中國相差8個(gè)時(shí)區(qū),如果要把打包時(shí)間寫到包名上則需要借助build-helper-maven-plugin插件獲得本時(shí)區(qū)的時(shí)間,

我們這里是要在代碼中獲取該時(shí)間,因此也可以用代碼來處理.

方案一.使用自定義的properties配置文件來獲取到maven的打包時(shí)間

1.1 在pom.xml的build中添加如下內(nèi)容,使properties能取到pom.xml中的數(shù)據(jù)

<resources>
       <resource>
           <directory>src/main/resources/</directory>
           <filtering>true</filtering>
       </resource>
</resources>

 1.2 在resources下新建remote.properties文件

 文件內(nèi)容如下

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

@XXX@ 雙@表示要去pom.xml中的參數(shù)值,XXX就是pom.xml的值

1.3 新建配置類

@Configuration
@ConfigurationProperties(prefix = "maven", ignoreUnknownFields = false)
@PropertySource(value= "classpath:config/maven.properties",encoding = "utf-8")
@Data
@Component
public class MavenProperties {
    /**maven打包時(shí)間*/
    private String package_time;
}

1.4 代碼中使用方式

@Resource
    private MavenProperties mavenProperties;
@Test
    public void run() throws Exception {
        log.info("打包時(shí)間:{}",mavenProperties.getPackage_time());
    }

maven 中的build resource 中的filtering作用

方案二.使用SpringBoot默認(rèn)的application.yml配置文件來獲取maven的打包時(shí)間,使用起來簡單許多

2.1在application.yml文件中添加如下配置

maven:
  package_time: '@timestamp@' # maven打包時(shí)間

'@XXX@' 雙@表示要去pom.xml中的參數(shù)值,XXX就是pom.xml的值

注意引號不能掉,否則會報(bào)錯(yml bug導(dǎo)致)

2.2獲取到之后代碼中使用就行了

@Value("${maven.package_time}")
   private String packageTime;
@Test
    public void run() throws Exception {
        log.info("打包時(shí)間:{}", modifyTime(packageTime));
    }
/**
     * 修改時(shí)間為東8區(qū)
     * @param date
     * @return
     */
    private String modifyTime(String date) {
        Date oldDate=null;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            oldDate = simpleDateFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(oldDate);
        calendar.add(Calendar.HOUR_OF_DAY, +8);
        return DateUtil.calendarToDateStr(calendar);
    }

到此這篇關(guān)于Spring Boot 獲取maven打包時(shí)間的文章就介紹到這了,更多相關(guān)Spring Boot maven打包時(shí)間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解java的四舍五入與保留位示例

    詳解java的四舍五入與保留位示例

    本篇文章主要介紹了java的四舍五入與保留位示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 關(guān)于spring的自定義緩存注解分析

    關(guān)于spring的自定義緩存注解分析

    這篇文章主要介紹了關(guān)于spring的自定義緩存注解分析,因?yàn)樗械膋ey的失效時(shí)間都一樣,要想實(shí)現(xiàn)不同的key不同的失效時(shí)間,就得需要自定義緩存注解,需要的朋友可以參考下
    2023-05-05
  • Java中static與instance的區(qū)別及作用詳解

    Java中static與instance的區(qū)別及作用詳解

    這篇文章主要為大家介紹了Java中static與instance的區(qū)別及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • java多線程模擬交通燈管理系統(tǒng)

    java多線程模擬交通燈管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java多線程模擬交通燈管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java使用itext生成pdf標(biāo)簽的操作方法

    Java使用itext生成pdf標(biāo)簽的操作方法

    iText是著名的開放源碼的站點(diǎn)sourceforge一個(gè)項(xiàng)目,是用于生成PDF文檔的一個(gè)java類庫,通過iText不僅可以生成PDF或rtf的文檔,而且可以將XML、Html文件轉(zhuǎn)化為PDF文件,本文給大家介紹了Java使用itext生成pdf標(biāo)簽的操作方法,需要的朋友可以參考下
    2024-12-12
  • Spring IOC原理詳解

    Spring IOC原理詳解

    這篇文章主要介紹了Spring IOC原理詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java基礎(chǔ)知識之ByteArrayOutputStream流的使用

    Java基礎(chǔ)知識之ByteArrayOutputStream流的使用

    這篇文章主要介紹了Java基礎(chǔ)知識之ByteArrayOutputStream流的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot實(shí)現(xiàn)文件下載功能的方式分享

    SpringBoot實(shí)現(xiàn)文件下載功能的方式分享

    這篇文章主要為大家詳細(xì)介紹了SpringBoot這哪個(gè)實(shí)現(xiàn)文件下載功能的幾種方式,文中的實(shí)現(xiàn)方法簡介易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • SpringBoot3實(shí)現(xiàn)Gzip壓縮優(yōu)化的技術(shù)指南

    SpringBoot3實(shí)現(xiàn)Gzip壓縮優(yōu)化的技術(shù)指南

    隨著 Web 應(yīng)用的用戶量和數(shù)據(jù)量增加,網(wǎng)絡(luò)帶寬和頁面加載速度逐漸成為瓶頸,為了減少數(shù)據(jù)傳輸量,提高用戶體驗(yàn),我們可以使用 Gzip 壓縮 HTTP 響應(yīng),本文將介紹如何在 Spring Boot 3 中實(shí)現(xiàn) Gzip 壓縮優(yōu)化,需要的朋友可以參考下
    2025-04-04
  • 詳解Spring Boot 部署與服務(wù)配置

    詳解Spring Boot 部署與服務(wù)配置

    本篇文章主要介紹了詳解Spring Boot 部署與服務(wù)配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論