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

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

 更新時(shí)間:2024年03月18日 10:44:47   作者:愛(ài)碼猿  
這篇文章主要介紹了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會(huì)對(duì)文件進(jìn)行過(guò)濾,將@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)試過(guò)程中會(huì)遇到這樣一個(gè)場(chǎng)景,明明修改了代碼,上傳到服務(wù)器重啟后總是會(huì)懷疑不是最新的包,為了證明代碼是最更新的,我們通常會(huì)在代碼里面輸出一句話以證明代碼是修改之后的,但是這樣做會(huì)很麻煩,

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

  我們一下就能想到的解決方案就是使用maven的打包時(shí)間,那么怎么才能動(dòng)態(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í)間),與中國(guó)相差8個(gè)時(shí)區(qū),如果要把打包時(shí)間寫(xiě)到包名上則需要借助build-helper-maven-plugin插件獲得本時(shí)區(qū)的時(shí)間,

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

方案一.使用自定義的properties配置文件來(lái)獲取到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 新建配置類(lèi)

@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配置文件來(lái)獲取maven的打包時(shí)間,使用起來(lái)簡(jiǎn)單許多

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

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

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

注意引號(hào)不能掉,否則會(huì)報(bào)錯(cuò)(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

    本篇文章主要介紹了java的四舍五入與保留位示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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是著名的開(kāi)放源碼的站點(diǎn)sourceforge一個(gè)項(xiàng)目,是用于生成PDF文檔的一個(gè)java類(lèi)庫(kù),通過(guò)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ǔ)知識(shí)之ByteArrayOutputStream流的使用

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

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

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

    這篇文章主要為大家詳細(xì)介紹了SpringBoot這哪個(gè)實(shí)現(xiàn)文件下載功能的幾種方式,文中的實(shí)現(xiàn)方法簡(jiǎ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)用的用戶(hù)量和數(shù)據(jù)量增加,網(wǎng)絡(luò)帶寬和頁(yè)面加載速度逐漸成為瓶頸,為了減少數(shù)據(jù)傳輸量,提高用戶(hù)體驗(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ù)配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03

最新評(píng)論