java时间戳版本号_详解SpringBoot获得Maven-pom中版本号和编译时间戳

这篇文章首先介绍了在springboot中如何获得项目的编译时间和版本号,并向外提供接口,然后介绍了介绍了新版maven获得时间戳时区错误的解决方案,最后介绍了把时间戳加到包名的两种方法。

springboot项目获得编译时间戳和版本号,然后提供接口大概分为以下步骤:

在pom文件中获取maven的编译时间戳

配置pom,用maven中的属性渲染资源文件application.yml

提供接口

maven中获得编译时间

在 pom文件properties 中添加两个属性

${maven.build.timestamp}

yyyy-mm-dd hh:mm:ss

用maven属性渲染application.yml

在pom文件build中配置

src/main/resources

true

在application.yml中配置

不能使用${}

app:

version: @project.version@

build:

time: @timestamp@

提供接口

创建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 ret = new hashmap<>();

ret.put("version",version);

ret.put("buildtime",buildtime);

//restresult是我封装的返回对象

return resultgenerator.gensuccessresult(ret);

}

}

测试

用yapi测试如下

b469a7f8c1df0bc529af8ccc43214c84.png

maven.build.timestamp时区错误解决方案

在maven 3.2.2+中, maven.build.timestamp已被重新定义,显示utc中的时间,比中国时间慢8个小时。可以使用插件build-helper-maven-plugin获得本时区的时间

在plugins块添加插件,这个配置与官网不一样,按照官网的配置方式会报错

${project.artifactid}-${project.version}-${build.time}

org.codehaus.mojo

build-helper-maven-plugin

1.8

timestamp-property

timestamp-property

build.time

yyyy-mm-dd hh:mm

gmt+8

经过上述处理后,属性${build.time}已经代表gmt-8时区的时间

application.yml配置如下

app:

version: @project.version@

build:

time: @build.time@

idea 编译项目不会调用 maven 生命周期,导致安装的 plugin 不被执行。虽然 maven 自带变量可以被替换,但是自定义变量却不会被替换。

可以将 idea 的 build 与 maven goal 绑定起来,在 build 之前执行 maven goal,idea 右侧 maven projects -> lifecycle -> compile 勾选 execute after build和execute after rebuild ,如下图

dc2af3361b6638a5063de2a0dd39aeaf.png

把时间戳加到包名

两种方法不要重复,否则

方法一:把时间戳加到版本号

0.0.5.${build.time}

方法二:把时间戳直接加到包名

${project.artifactid}-${project.version}-${build.time}

参考资料

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值