简介:为了在项目变更版本时查看是否变更成功 & 查看项目编译时间
1、在pom文件中添加:
<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>
<build>中添加以下内容:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
2、application.properties中添加:【注意:是@@,不是${}】
app.version = @project.version@
app.build.time = @timestamp@
3、添加一个配置类
【注意:我们所处的时区为东八区,默认打印时间为东零区,需要加8个小时】
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 项目启动日志:打印项目版本和构建时间
*/
@Configuration
@Slf4j
public class BeanPostConfig implements BeanPostProcessor {
// 当前版本
@Value("${app.version}")
private String serviceVersion;
// 打包时间
@Value("${app.build.time}")
private String serviceBuildDate;
@PostConstruct
public void projectInfo(){
StringBuffer projectInfo = new StringBuffer();
projectInfo.append("\n=================project=================\n");
projectInfo.append(String.format("\nservice version:%s\n",serviceVersion));
String timestamps = formatTimeHours(serviceBuildDate, 8);
projectInfo.append(String.format("\nservice build date:%s\n",timestamps));
projectInfo.append("\n=================project=================\n");
log.info(projectInfo.toString());
}
/**
* 将时间转换为东八区时区,默认为东0区
*
* @param time
* @param hours
* @return
*/
public String formatTimeHours(String time, int hours) {
try {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sd.parse(time);
long rightTime = (long) (d.getTime() + hours * 60 * 60 * 1000);
String newtime = sd.format(rightTime);
return newtime;
} catch (Exception e) {
log.warn("-------系统时间转化出现异常--------");
return null;
}
}
}
输出日志为: