溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用maven 打包時(shí)間戳

發(fā)布時(shí)間:2021-06-16 13:57:25 來源:億速云 閱讀:370 作者:Leah 欄目:編程語言

如何使用maven 打包時(shí)間戳,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

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 綁定起來:

如何使用maven 打包時(shí)間戳

關(guān)于如何使用maven 打包時(shí)間戳問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI