yyyy-MM-dd HH:mm:ss
${maven.build.timestamp}
其中timestamp就是maven打包编译的时间,但是记录的时间是UTC时间(世界标准时间),与中国相差8个时区,如果要把打包时间写到包名上则需要借助build-helper-maven-plugin插件获得本时区的时间,
我们这里是要在代码中获取该时间,因此也可以用代码来处理.
方案一.使用自定义的properties配置文件来获取到maven的打包时间
1.1 在pom.xml的build中添加如下内容,使properties能取到pom.xml中的数据
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
</resource>
</resources>
1.2 在resources下新建remote.properties文件
文件内容如下
# maven打包时间
maven.package_time=@timestamp@
@XXX@ 双@表示要去pom.xml中的参数值,XXX就是pom.xml的值
1.3 新建配置类
@Configuration
@ConfigurationProperties(prefix = "maven", ignoreUnknownFields = false)
@PropertySource(value= "classpath:config/maven.properties",encoding = "utf-8")
@Data
@Component
public class MavenProperties {
/**maven打包时间*/
private String package_time;
1.4 代码中使用方式
@Resource
private MavenProperties mavenProperties;
@Test
public void run() throws Exception {
log.info("打包时间:{}",mavenProperties.getPackage_time());
maven 中的build resource 中的filtering作用
方案二.使用SpringBoot默认的application.yml配置文件来获取maven的打包时间,使用起来简单许多
2.1在application.yml文件中添加如下配置
maven:
package_time: '@timestamp@' # maven打包时间
'@XXX@' 双@表示要去pom.xml中的参数值,XXX就是pom.xml的值
注意引号不能掉,否则会报错(yml bug导致)
2.2获取到之后代码中使用就行了
@Value("${maven.package_time}")
private String packageTime;
@Test
public void run() throws Exception {
log.info("打包时间:{}", modifyTime(packageTime));
* 修改时间为东8区
* @param date
* @return
private String modifyTime(String date) {
Date oldDate=null;
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
oldDate = simpleDateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
Calendar calendar = Calendar.getInstance();
calendar.setTime(oldDate);
calendar.add(Calendar.HOUR_OF_DAY, +8);
return DateUtil.calendarToDateStr(calendar);
原文链接:https://www.cnblogs.com/chengzhongyi/p/14516491.html
maven打包加时间戳方法总结基于Maven的项目,发布时需要打包,如tar.gz。web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为myproject.war。而我希望的名字为myproject-1.0.0-20160217。方便以后对包进行查找与管理,如何实现这种效果呢?
<properties>
<maven.build.timestamp.format>MMddHHmmss</maven.build.timestamp.format>
</properties>
在build中定义包名的格式
<build>
<finalName> ${projec
在打包的时候,我们首先要更改父pom中的版本号,然后还要再项目中的每一个module中更改父依赖的版本号。在Maven项目开发中,我们经常需要进行打SNAPSHOT包以便其他项目能够实时地使用最新代码进行联调。如果一个Maven项目中含有很多个module,那么一个一个去手动更改版本号是不是效率有点太低了呢?然后再点击Submit,你就会发现所有module的pom文件对应部分都被修改啦~点击如图所示的向上箭头,在弹出的框里填写想要生成的版本号,安装完成后在Maven的界面会变成下面这样~
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
今天发布项目到测试环境, 发布完成后, 一直启动不起来, 查看日志发现java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
Dumping heap to /dump/dump.hprof
Unable to create /dump/dump.hprof: File e...
Bug的身世之谜今天又分享一个问题解决的故事。请看下图框起来的错误,明显就是找不到这个class嘛!下面我们按照正常人的思路去排查这个问题,既然找不到class那就先看这个依赖的jar包有没有,如果没有那就是铁证如山。但是事与愿违啊,编译后的lib目录下真的有这个包o****rder-api-2.0-SNAPSHOT.jar还是不相信,于是将order-api-2.0-SNAPSHOT.jar解压...
这篇文章首先介绍了在SpringBoot中如何获得项目的编译时间和版本号,并向外提供接口,然后介绍了介绍了新版maven获得时间戳时区错误的解决方案,最后介绍了把时间戳加到包名的两种方法。SpringBoot项目获得编译时间戳和版本号,然后提供接口大概分为以下步骤:在pom文件中获取maven的编译时间戳配置pom,用maven中的属性渲染资源文件application.yml提供接口Maven中...
<?xml version="1.0" encoding="UTF-8"?>
![在这里插入图片描述](https://img-blog.csdnimg.cn/12c5e5fa50284f3c88261152aad31bb9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0
这里写自定义目录标题目标生成新的buildCode获取SVN版本号获取日期获取自增版本号更新properties文件
使用mvn install时修改/config/env.properties中的buildCode 格式是
buildCode=Build1038 rev3083 @2021/12/27 16:42:15
build是自增版本号,rev是svn版本
所以一共有以下几个步骤
1、生成新的buildCode----获取SVN版本号和打包时间,想办法生成一个每次打包自增的版本号
2、打包时修