欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2022-05-18 08:42:27|栏目:JAVA代码|点击:

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配置如下

<properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <!-- 设置时间格式 -->
 <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
 </properties>

-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文件中加入以下配置

<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>

在打包plugin中引用该属性

<finalName>
  ${project.artifactId}-${project.version}_${maven.build.timestamp}
</finalName>

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

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

2.使用buildnubmer-maven-plugin

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <timestampFormat>yyyyMMdd</timestampFormat>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>create-timestamp</goal>
            </goals>
        </execution>
    </executions>
    <inherited>false</inherited>
</plugin>

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

<finalName>
${project.artifactId}-${project.version}_${timestamp}
</finalName>

3.使用build-helper-maven-plugin

   <build>
    <finalName>ProjectName-${current.time}</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>timestamp-property</id>
                    <goals>
                        <goal>timestamp-property</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <name>current.time</name>
                <pattern>yyyyMMdd-HHmmss</pattern>
                <timeZone>GMT+8</timeZone>
            </configuration>
        </plugin>
    </plugins>
</build>

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

上一篇:java的main方法中调用spring的service方式

栏    目:JAVA代码

下一篇:Java中Process类的使用与注意事项说明

本文标题:Maven pom.xml文件获取当前时间戳方式

本文地址:http://www.codeinn.net/misctech/202168.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有