最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot獲得Maven-pom中版本號和編譯時間戳

 更新時間:2020年01月10日 09:14:32   作者:zhaodongxx  
這篇文章主要介紹了詳解SpringBoot獲得Maven-pom中版本號和編譯時間戳,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

這篇文章首先介紹了在SpringBoot中如何獲得項目的編譯時間和版本號,并向外提供接口,然后介紹了介紹了新版maven獲得時間戳時區(qū)錯誤的解決方案,最后介紹了把時間戳加到包名的兩種方法。

SpringBoot項目獲得編譯時間戳和版本號,然后提供接口大概分為以下步驟:

  • 在pom文件中獲取maven的編譯時間戳
  • 配置pom,用maven中的屬性渲染資源文件application.yml
  • 提供接口

Maven中獲得編譯時間

在 pom文件properties 中添加兩個屬性

<properties>
 <!--maven.build.timestamp保存了maven編譯時間戳-->
 <timestamp>${maven.build.timestamp}</timestamp>
 <!--指定時間格式--> 
 <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
</properties>

用Maven屬性渲染application.yml

在pom文件build中配置

<build>
 <resources>
  <resource>
   <directory>src/main/resources</directory>
   <filtering>true</filtering>
  </resource>
 </resources>
</build>

在application.yml中配置

不能使用${}

app:
 version: @project.version@
 build:
 time: @timestamp@

提供接口

創(chuàng)建AppController,提供接口 Get /app

package cn.yshow.modules.sys.controller;

import cn.yshow.common.utils.restResult.RestResult;
import cn.yshow.common.utils.restResult.ResultGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @author zhaod zhaodongxx@outlook.com
 * @version v1.0
 * @since 2018/12/16 16:19
 */
@Slf4j
@RestController
@RequestMapping("/app")
public class AppController {
 /**
  * 當前版本
  */
 @Value("${app.version}")
 private String version;
 /**
  * 打包時間
  */
 @Value("${app.build.time}")
 private String buildTime;

 @GetMapping
 public RestResult uploadImg() {
  Map<String,String> ret = new HashMap<>();
  ret.put("version",version);
  ret.put("buildTime",buildTime);
  
  //RestResult是我封裝的返回對象
  return ResultGenerator.genSuccessResult(ret);
 }
}

測試

用YAPI測試如下

maven.build.timestamp時區(qū)錯誤解決方案

在Maven 3.2.2+中, maven.build.timestamp已被重新定義,顯示UTC中的時間,比中國時間慢8個小時??梢允褂貌寮uild-helper-maven-plugin獲得本時區(qū)的時間

在plugins塊添加插件,這個配置與官網(wǎng)不一樣,按照官網(wǎng)的配置方式會報錯

<project>
 <build>
  <!--指定包名 -->
  <finalName>
   ${project.artifactId}-${project.version}-${build.time}
  </finalName>
  <plugins>
   <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>
     </execution>
    </executions>
    <configuration>
     <name>build.time</name>
     <pattern>yyyy-MM-dd HH:mm</pattern>
     <timeZone>GMT+8</timeZone>
    </configuration>
   </plugin>
  </plugins>
 </build>
</project> 

經(jīng)過上述處理后,屬性${build.time}已經(jīng)代表GMT-8時區(qū)的時間

application.yml配置如下

app:
 version: @project.version@
 build:
 time: @build.time@

IDEA 編譯項目不會調(diào)用 maven 生命周期,導致安裝的 plugin 不被執(zhí)行。雖然 maven 自帶變量可以被替換,但是自定義變量卻不會被替換。

可以將 IDEA 的 Build 與 maven goal 綁定起來,在 build 之前執(zhí)行 maven goal,IDEA 右側(cè) Maven Projects -> LifeCycle -> compile 勾選 Execute After Build和Execute After Rebuild ,如下圖

把時間戳加到包名

兩種方法不要重復,否則

方法一:把時間戳加到版本號

<project>
 <versioin>
  0.0.5.${build.time}
 </version>
</project>

方法二:把時間戳直接加到包名

<project>
 <build>
  <finalName>
   ${project.artifactId}-${project.version}-${build.time}
  </finalName>
 </build> 
 
</project>

參考資料

maven 打包時間戳問題

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java基于swing實現(xiàn)的彈球游戲代碼

    Java基于swing實現(xiàn)的彈球游戲代碼

    這篇文章主要介紹了Java基于swing實現(xiàn)的彈球游戲代碼,包含了窗體界面設計與游戲的邏輯功能處理,具有不錯的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Java設計模式之工廠模式實現(xiàn)方法詳解

    Java設計模式之工廠模式實現(xiàn)方法詳解

    這篇文章主要介紹了Java設計模式之工廠模式實現(xiàn)方法,結(jié)合實例形式較為詳細的分析了工廠模式的分類、原理、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-12-12
  • Java中的泛型詳解

    Java中的泛型詳解

    這篇文章主要介紹了Java中的泛型詳解,本文講解了泛型類或接口、從泛型類派生子類、偽泛型、類型通配符、通配符的上限、通配符的下限、擦除和轉(zhuǎn)換等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • java獲取json中的全部鍵值對實例

    java獲取json中的全部鍵值對實例

    下面小編就為大家分享一篇java獲取json中的全部鍵值對實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Intellij IDEA 斷點不可用報錯 No executable code found

    Intellij IDEA 斷點不可用報錯 No executable 

    這篇文章主要介紹了Intellij IDEA 斷點不可用報錯 No executable code found問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    本文主要介紹了mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-10-10
  • mybatis-plus配置攔截器實現(xiàn)sql完整打印的代碼設計

    mybatis-plus配置攔截器實現(xiàn)sql完整打印的代碼設計

    在使用mybatis-plus(mybatis)的時候,往往需要打印完整的sql語句,然而輸出的日志不是很理想,因為sql語句中的關(guān)鍵字段信息都是用?來代替的,所以本文分享了一下自己寫了一個攔截器實現(xiàn)了sql完整的打印,需要的朋友可以參考下
    2024-06-06
  • Java使用POI導出Excel(一):單sheet

    Java使用POI導出Excel(一):單sheet

    這篇文章介紹了Java使用POI導出Excel的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Mybatis聯(lián)合查詢的實現(xiàn)方法

    Mybatis聯(lián)合查詢的實現(xiàn)方法

    本文主要介紹了 Mybatis聯(lián)合查詢的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Spring IOC簡單理解及創(chuàng)建對象的方式

    Spring IOC簡單理解及創(chuàng)建對象的方式

    這篇文章主要介紹了Spring IOC簡單理解及創(chuàng)建對象的方式,本文通過兩種方式給大家介紹創(chuàng)建對象的方法,通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-09-09

最新評論

夹江县| 托克托县| 河北省| 桑植县| 包头市| 收藏| 襄樊市| 临沂市| 海宁市| 宁化县| 托克逊县| 虞城县| 通许县| 浦东新区| 清苑县| 肃北| 辽中县| 曲麻莱县| 舟山市| 蓬莱市| 德格县| 哈密市| 苍梧县| 黄浦区| 永年县| 德清县| 拉萨市| 阜阳市| 杨浦区| 宜君县| 册亨县| 梁河县| 怀集县| 宁夏| 双桥区| 喀喇沁旗| 文水县| 秭归县| 枣庄市| 萍乡市| 隆回县|