Maven?pom.xml文件獲取當(dāng)前時(shí)間戳方式
Maven pom.xml文件獲取當(dāng)前時(shí)間戳
今天發(fā)布項(xiàng)目到測(cè)試環(huán)境,發(fā)布完成后,一直啟動(dòng)不起來(lái),查看日志發(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
問(wèn)題
所以每次系統(tǒng)出現(xiàn)OutOfMemoryError時(shí),系統(tǒng)自動(dòng)會(huì)dump內(nèi)存快照到/dump/dump.hprof文件里. 如果第一次dump完成后,第二次就會(huì)提示File exists
解決方案
在dump.hprof文件后面添加時(shí)間戳
新Maven pom.xml配置如下
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 設(shè)置時(shí)間格式 -->
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/dump/dump${maven.build.timestamp}.hprof
如果再出現(xiàn)OutOfMemoryError錯(cuò)誤, dump下來(lái)的文件 /dump/dump20181206112111.hprof
Maven打包加時(shí)間戳方法總結(jié)
基于Maven的項(xiàng)目,發(fā)布時(shí)需要打包,如tar.gz。web項(xiàng)目打成war格式包。每次打包時(shí)希望自己加上時(shí)間戳,假如我的項(xiàng)目名是myproject,默認(rèn)打包后名為myproject.war。而我希望的名字為myproject-1.0.0-20160217。方便以后對(duì)包進(jìn)行查找與管理,如何實(shí)現(xiàn)這種效果呢?
1.使用maven自帶的屬性
設(shè)置時(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自帶時(shí)間戳使用${maven.build.timestamp},但是時(shí)區(qū)是UTC。
如果要使用GMT+8,就需要插件提供支持,以下兩個(gè)插件可以實(shí)現(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文件中,打個(gè)包試試,是不是自己加上了時(shí)間戳
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)pipeline配置sonar自動(dòng)化實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了通過(guò)pipeline配置sonar自動(dòng)化實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Java基礎(chǔ)之Thymeleaf的簡(jiǎn)單使用
這篇文章主要介紹了Java基礎(chǔ)之Thymeleaf的簡(jiǎn)單使用,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
java+selenium實(shí)現(xiàn)滑塊驗(yàn)證
現(xiàn)在越來(lái)越多的網(wǎng)站都使用采用滑塊驗(yàn)證來(lái)作為驗(yàn)證機(jī)制,用于判斷用戶(hù)是否為人類(lèi)而不是機(jī)器人,本文就將利用java和selenium實(shí)現(xiàn)滑塊驗(yàn)證,希望對(duì)大家有所幫助2023-12-12
java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
Java?HashSet的Removals()方法注意事項(xiàng)
這篇文章主要介紹了Java?HashSet的Removals()方法注意事項(xiàng),文章圍繞制主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
JAVA 對(duì)象創(chuàng)建與對(duì)象克隆
這篇文章主要介紹了JAVA 對(duì)象創(chuàng)建與對(duì)象克隆,new 創(chuàng)建、反射、克隆、反序列化,克隆它分為深拷貝和淺拷貝,通過(guò)調(diào)用對(duì)象的 clone方法,進(jìn)行對(duì)象的克隆,下面來(lái)看看文章的詳細(xì)內(nèi)容吧2022-02-02
仿釘釘流程輕松實(shí)現(xiàn)JSON轉(zhuǎn)BPMN完整實(shí)現(xiàn)過(guò)程示例
這篇文章主要為大家介紹了仿釘釘流程輕松實(shí)現(xiàn)JSON轉(zhuǎn)BPMN完整實(shí)現(xiàn)過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

