Maven?pom.xml文件獲取當(dāng)前時(shí)間戳方式
Maven pom.xml文件獲取當(dāng)前時(shí)間戳
今天發(fā)布項(xiàng)目到測(cè)試環(huán)境,發(fā)布完成后,一直啟動(dòng)不起來,查看日志發(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時(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下來的文件 /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)文章
Java 時(shí)間格式轉(zhuǎn)換之impleDateFormat與Data API解析與使用
想必大家對(duì) SimpleDateFormat 并不陌生。SimpleDateFormat 是 Java 中一個(gè)非常常用的類,他是以區(qū)域敏感的方式格式化和解析日期的具體類。 它允許格式化 (date -> text)、語法分析 (text -> date)和標(biāo)準(zhǔn)化2021-11-11@RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問題及解決
這篇文章主要介紹了@RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04解決Mybatis中result標(biāo)簽識(shí)別不了的情況
這篇文章主要介紹了解決Mybatis中result標(biāo)簽識(shí)別不了的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01SpringBoot Security安裝配置及Thymeleaf整合
這篇文章主要介紹了SpringBoot Security安裝配置及Thymeleaf整合,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Spring?Security權(quán)限控制的實(shí)現(xiàn)接口
這篇文章主要介紹了Spring?Security的很多功能,在這些眾多功能中,我們知道其核心功能其實(shí)就是認(rèn)證+授權(quán)。Spring教程之Spring?Security的四種權(quán)限控制方式2023-03-03Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法
這篇文章主要介紹了Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式
這篇文章主要介紹了windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04