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

圖1 綁定 maven goal
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中數(shù)組和List的互相轉(zhuǎn)換問題小結(jié)
這篇文章主要介紹了Java中數(shù)組和List的互相轉(zhuǎn)換問題小結(jié),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-03-03
Java按時間梯度實現(xiàn)異步回調(diào)接口的方法
這篇文章主要介紹了Java按時間梯度實現(xiàn)異步回調(diào)接口,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
Java基于LoadingCache實現(xiàn)本地緩存的示例代碼
本文主要介紹了Java基于LoadingCache實現(xiàn)本地緩存的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

