Maven pom.xml文件获取当前时间戳方式

Maven pom.xml文件获取当前时间戳

今天发布项目到测试环境,发布完成后,一直启动不起来,查看日志发现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 exists

原Maven pom.xml配置如下

-XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize=512M
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/dump/dump.hprof

问题

所以每次系统出现OutOfMemoryError时,系统自动会dump内存快照到/dump/dump.hprof文件里. 如果第一次dump完成后,第二次就会提示File exists

解决方案

在dump.hprof文件后面添加时间戳

新Maven pom.xml配置如下


 UTF-8
 
 yyyyMMddHHmmss
 

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/dump/dump${maven.build.timestamp}.hprof

如果再出现OutOfMemoryError错误, dump下来的文件 /dump/dump20181206112111.hprof

Maven打包加时间戳方法总结

基于Maven的项目,发布时需要打包,如tar.gz。web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为myproject.war。而我希望的名字为myproject-1.0.0-20160217。方便以后对包进行查找与管理,如何实现这种效果呢?

1.使用maven自带的属性

设置时间戳格式:在pom.xml文件中加入以下配置


yyyyMMddHHmmss

在打包plugin中引用该属性


  ${project.artifactId}-${project.version}_${maven.build.timestamp}

Maven自带时间戳使用${maven.build.timestamp},但是时区是UTC。

如果要使用GMT+8,就需要插件提供支持,以下两个插件可以实现。

2.使用buildnubmer-maven-plugin


    org.codehaus.mojo
    buildnumber-maven-plugin
    1.4
    
        yyyyMMdd
    
    
        
            
                create-timestamp
            
        
    
    false

默认属性是timestamp,在打包plugin中引用该属性


${project.artifactId}-${project.version}_${timestamp}

3.使用build-helper-maven-plugin

   
    ProjectName-${current.time}
    
        
            org.codehaus.mojo
            build-helper-maven-plugin
            1.9.1
            
                
                    timestamp-property
                    
                        timestamp-property
                    
                
            
            
                current.time
                yyyyMMdd-HHmmss
                GMT+8
            
        
    

将以上的几种方式配置分别加入到自己的pom.xml文件中,打个包试试,是不是自己加上了时间戳

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的