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

目录
  • Maven pom.xml文件获取当前时间戳
    • 问题
    • 解决方案
  • Maven打包加时间戳方法总结
    • 1.使用maven自带的属性
    • 2.使用buildnubmer-maven-plugin
    • 3.使用build-helper-maven-plugin

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文件中,打个包试试,是不是自己加上了时间戳

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

(0)

相关推荐

  • maven 打包时间戳问题

    maven 打包时,可以生成时间戳属性,利用该属性来组装包名. <version>5.0.${build.time}B</version> <properties> <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> </properties> 对资源文件开启 filtering 功能,资源文件中的 POM 变量在打包过程中会被自动替换

  • 详解SpringBoot获得Maven-pom中版本号和编译时间戳

    这篇文章首先介绍了在SpringBoot中如何获得项目的编译时间和版本号,并向外提供接口,然后介绍了介绍了新版maven获得时间戳时区错误的解决方案,最后介绍了把时间戳加到包名的两种方法. SpringBoot项目获得编译时间戳和版本号,然后提供接口大概分为以下步骤: 在pom文件中获取maven的编译时间戳 配置pom,用maven中的属性渲染资源文件application.yml 提供接口 Maven中获得编译时间 在 pom文件properties 中添加两个属性 <properties>

  • java 中maven pom.xml文件教程详解

    maven pom.xml文件教程详解,具体内容如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.x

  • 基于Maven的pom.xml文件详解

    如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项

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

    目录 Maven pom.xml文件获取当前时间戳 问题 解决方案 Maven打包加时间戳方法总结 1.使用maven自带的属性 2.使用buildnubmer-maven-plugin 3.使用build-helper-maven-plugin Maven pom.xml文件获取当前时间戳 今天发布项目到测试环境,发布完成后,一直启动不起来,查看日志发现java.lang.OutOfMemoryError: Java heap space. java.lang.OutOfMemoryError

  • Maven之pom.xml文件中的Build配置解析

    目录 前言 正文 mave的相关插件 pom.xml中的build标签 1. pom.xml中的两种build 2. Profile Build和Project Build的共有元素 3. Project Build特有的<-Directory> 4. Project Build特有的 Maven常用配置 pom.xml基础配置 插件配置 编译插件 测试插件 测试报告插件 eclipse插件 war包插件 tomcat插件 插件命令 总结 前言 在日常的开发中,我们经常使用maven来管理和构

  • 解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

    之前百度找答案,指明的是依赖中servlet-api中添加provided 发现自己的依赖中已添加,未找到解决办法. 显示红色报错,阿里云仓库无法下载该文件.报错如下: 找到文件位置,删除maven本地仓库文件 解决办法:指定版本信息2.2 到此这篇关于idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题的文章就介绍到这了,更多相关idea2020.2报错maven插件tomcat7内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Maven pom.xml 添加本地jar包依赖以及打包方法

    Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需要将jar包安装到本地maven仓库下,然后添加依赖即可. (1)安装到本地仓库,执行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion项根据pom文件内容填写): mvn install:install-file -Dfile=xxxxx.jar -Dg

  • IDEA项目的依赖(pom.xml文件)导入问题及解决

    前言 IDEA新建项目和pom.xml文件被修改时,右下角都会出现 Maven projects need to be imported(项目需要导入依赖) 如下,点击 Import Changes导入后,有时会一直处于加载中或导入失败 解决方法 第一种方法: 右击pom.xml文件,选择Maven中的Reimport重新导入项目依赖,一般这种方法都解决不了上面的问题,可直接看下面的方法 第二种方法: 点击 File 选择 Settings- 直接搜索 Maven,在搜索结果中 Maven ho

  • springboot新建项目pom.xml文件第一行报错的解决

    目录 springboot新建项目pom.xml文件第一行报错 新建一个测试项目 下面是文件 解决这个问题只需要 springboot创建过程中pom.xml报错 问题出现原因 解决办法 springboot新建项目pom.xml文件第一行报错 新建一个测试项目 发现创建完毕pom.xml文件报错,提示 Description Resource Path Location Type Unknown pom.xml /demo line 1 Maven Configuration Problem

  • springboot中pom.xml文件注入test测试依赖时报错的解决

    目录 pom.xml文件注入test测试依赖时报错 分析原因 解决方法 springboot中pom.xml之间的依赖 依赖关系 所用到的技术 talkischeap,详见配置文件 pom.xml文件注入test测试依赖时报错 报错:Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-test:jar:2.0.4.RELEASE 分析原因 有可能是默认版本太高 解决方法 降低版本

  • Maven pom.xml与settings.xml详解

    pom.xml与settings.xml pom.xml与setting.xml,可以说是Maven中最重要的两个配置文件,决定了Maven的核心功能,虽然之前的文章零零碎碎有提到过pom.xml和settings.xml里面的内容,但都是大略带过,学习与研究地并不细致,本文的目的就是详细研究下这两个Maven重要的配置文件,从这两个配置文件可以牵出非常多的Maven话题.  Maven坐标 首先谈一下为什么要使用Maven坐标. Maven世界拥有数量非常巨大的构件,也就是平时使用的一些jar

随机推荐