maven 打包時(shí)間戳問題
maven 打包時(shí),可以生成時(shí)間戳屬性,利用該屬性來組裝包名。
<version>5.0.${build.time}B</version>
<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>
對(duì)資源文件開啟 filtering 功能,資源文件中的 POM 變量在打包過程中會(huì)被自動(dòng)替換。在 java 代碼中訪問 properties 資源文件,就可以取到版本號(hào)。
<resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource>
但是,這個(gè)時(shí)間戳屬性有個(gè)問題,生成的時(shí)間 ${maven.build.timestamp} 是 UTC 時(shí)間,無法修改時(shí)區(qū)。網(wǎng)上找到一個(gè)辦法,可以用插件解決這個(gè)問題。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>build.time</name>
<pattern>yyyyMMdd'.'HHmm</pattern>
<timeZone>GMT+8</timeZone>
</configuration>
</execution>
</executions>
</plugin>
該插件生成的屬性 ${build.time} 已經(jīng)是本地時(shí)區(qū)。
但是,在 IDEA 中, Build Projects ,再 Build Artifacts... ,屬性文件中的 ${project.version} 并沒有被替換。
摸索了一陣,發(fā)現(xiàn) IDEA Build Projects 并不會(huì)調(diào)用 maven 生命周期,導(dǎo)致 plugin 不被執(zhí)行。雖然 maven 自帶變量可以被替換,但是自定義變量卻不會(huì)被替換。
使用工具按鈕的 maven install 打包,資源中的變量可以被正常替換。
還有一個(gè)方法,可以將 IDEA 的 Build 與 maven goal 綁定起來:

圖1 綁定 maven goal
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中數(shù)組和List的互相轉(zhuǎn)換問題小結(jié)
這篇文章主要介紹了Java中數(shù)組和List的互相轉(zhuǎn)換問題小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-03-03
spring boot補(bǔ)習(xí)系列之幾種scope詳解
這篇文章主要給大家介紹了關(guān)于spring boot補(bǔ)習(xí)系列之幾種scope的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法
這篇文章主要介紹了Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08
Java基于LoadingCache實(shí)現(xiàn)本地緩存的示例代碼
本文主要介紹了Java基于LoadingCache實(shí)現(xiàn)本地緩存的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Java設(shè)計(jì)模式之23種設(shè)計(jì)模式詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之23種設(shè)計(jì)模式詳解,設(shè)計(jì)模式使代碼編制真正工程化,設(shè)計(jì)模式是軟件工程的基石,項(xiàng)目中合理的運(yùn)用設(shè)計(jì)模式可以完美的解決很多問題,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

