Maven?pom.xml文件獲取當(dāng)前時間戳方式
Maven pom.xml文件獲取當(dāng)前時間戳
今天發(fā)布項目到測試環(huán)境,發(fā)布完成后,一直啟動不起來,查看日志發(fā)現(xiàn)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
問題
所以每次系統(tǒng)出現(xiàn)OutOfMemoryError時,系統(tǒng)自動會dump內(nèi)存快照到/dump/dump.hprof文件里. 如果第一次dump完成后,第二次就會提示File exists
解決方案
在dump.hprof文件后面添加時間戳
新Maven pom.xml配置如下
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 設(shè)置時間格式 -->
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/dump/dump${maven.build.timestamp}.hprof
如果再出現(xiàn)OutOfMemoryError錯誤, dump下來的文件 /dump/dump20181206112111.hprof
Maven打包加時間戳方法總結(jié)
基于Maven的項目,發(fā)布時需要打包,如tar.gz。web項目打成war格式包。每次打包時希望自己加上時間戳,假如我的項目名是myproject,默認(rèn)打包后名為myproject.war。而我希望的名字為myproject-1.0.0-20160217。方便以后對包進(jìn)行查找與管理,如何實現(xiàn)這種效果呢?
1.使用maven自帶的屬性
設(shè)置時間戳格式:在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},但是時區(qū)是UTC。
如果要使用GMT+8,就需要插件提供支持,以下兩個插件可以實現(xiàn)。
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>
默認(rèn)屬性是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文件中,打個包試試,是不是自己加上了時間戳
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過pipeline配置sonar自動化實現(xiàn)過程解析
這篇文章主要介紹了通過pipeline配置sonar自動化實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹及其編碼示例詳解
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹及其編碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
仿釘釘流程輕松實現(xiàn)JSON轉(zhuǎn)BPMN完整實現(xiàn)過程示例
這篇文章主要為大家介紹了仿釘釘流程輕松實現(xiàn)JSON轉(zhuǎn)BPMN完整實現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

