maven 打包時(shí)間戳問(wèn)題
maven 打包時(shí),可以生成時(shí)間戳屬性,利用該屬性來(lái)組裝包名。
<version>5.0.${build.time}B</version> <properties> <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> </properties>
對(duì)資源文件開(kāi)啟 filtering 功能,資源文件中的 POM 變量在打包過(guò)程中會(huì)被自動(dòng)替換。在 java 代碼中訪(fǎng)問(wèn) properties 資源文件,就可以取到版本號(hào)。
<resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource>
但是,這個(gè)時(shí)間戳屬性有個(gè)問(wèn)題,生成的時(shí)間 ${maven.build.timestamp} 是 UTC 時(shí)間,無(wú)法修改時(shí)區(qū)。網(wǎng)上找到一個(gè)辦法,可以用插件解決這個(gè)問(wèn)題。
<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} 并沒(méi)有被替換。
摸索了一陣,發(fā)現(xiàn) IDEA Build Projects 并不會(huì)調(diào)用 maven 生命周期,導(dǎo)致 plugin 不被執(zhí)行。雖然 maven 自帶變量可以被替換,但是自定義變量卻不會(huì)被替換。
使用工具按鈕的 maven install 打包,資源中的變量可以被正常替換。
還有一個(gè)方法,可以將 IDEA 的 Build 與 maven goal 綁定起來(lái):
圖1 綁定 maven goal
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java多線(xiàn)程編程之使用thread類(lèi)創(chuàng)建線(xiàn)程
在Java中創(chuàng)建線(xiàn)程有兩種方法:使用Thread類(lèi)和使用Runnable接口。在使用Runnable接口時(shí)需要建立一個(gè)Thread實(shí)例2014-01-01Java設(shè)計(jì)模式之策略模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
策略模式是對(duì)算法的封裝,把一系列的算法分別封裝到對(duì)應(yīng)的類(lèi)中,并且這些類(lèi)實(shí)現(xiàn)相同的接口,相互之間可以替換。接下來(lái)通過(guò)本文給大家分享Java設(shè)計(jì)模式之策略模式,感興趣的朋友一起看看吧2017-08-08詳解Java內(nèi)部類(lèi)——匿名內(nèi)部類(lèi)
這篇文章主要介紹了詳解Java 匿名內(nèi)部類(lèi)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)java 內(nèi)部類(lèi)的相關(guān)知識(shí),感興趣的朋友可以了解下2020-08-08關(guān)于fastjson的@JSONField注解的一些問(wèn)題(詳解)
下面小編就為大家?guī)?lái)一篇關(guān)于fastjson的@JSONField注解的一些問(wèn)題(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02關(guān)于SpringBoot整合redis使用Lettuce客戶(hù)端超時(shí)問(wèn)題
使用到Lettuce連接redis,一段時(shí)間后不操作,再去操作redis,會(huì)報(bào)連接超時(shí)錯(cuò)誤,在其重連后又可使用,糾結(jié)是什么原因?qū)е碌哪?,下面小編給大家?guī)?lái)了SpringBoot整合redis使用Lettuce客戶(hù)端超時(shí)問(wèn)題及解決方案,一起看看吧2021-08-08springboot集成RestTemplate及常見(jiàn)的用法說(shuō)明
這篇文章主要介紹了springboot集成RestTemplate及常見(jiàn)的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Spring Cloud中使用Eureka的詳細(xì)過(guò)程
Eureka 是 Netflix 開(kāi)源的一個(gè)服務(wù)發(fā)現(xiàn)組件,它在微服務(wù)架構(gòu)中扮演著重要的角色,這篇文章主要介紹了Spring Cloud中如何使用Eureka,需要的朋友可以參考下2024-07-07Spring:@Async注解和AsyncResult與CompletableFuture使用問(wèn)題
這篇文章主要介紹了Spring:@Async注解和AsyncResult與CompletableFuture使用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式
這篇文章主要介紹了SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03