【Maven】打包部署时jar/war包名增加时间戳

maven打包加时间戳

基于Maven的项目,发布时需要打包,如web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为ROOT-2.1.1.war。而我希望的名字为ROOT-2.1.1-{yyyyMMddHHmmss},方便以后对包进行查找与管理,如何实现这种效果呢?

  1. 使用maven自带的属性
    设置时间戳格式:在pom.xml文件中加入以下配置
<properties>
   <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>

<build>...</build>中引用该属性

<build>
        <!--打jar则在finalName里面-->
		<finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName>
    
        <!--打war则在 maven-war-plugin 里面的 warName 里面-->
         <plugins>       
                <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!--最终打包名-->
					<warName>${project.artifactId}-${project.version}-${maven.build.timestamp</warName>
                    <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>     
</build>

Maven自带时间戳使用${maven.build.timestamp},但是时区是UTC(比北京时间晚8个小时)。 如果要使用GMT+8,就需要插件提供支持,以下两个插件可以实现。

  1. <plugins></plugins>使用buildnubmer-maven-plugin
<build>
        <!--打jar则在finalName里面-->
        <finalName>
            ${project.artifactId}-${project.version}-${timestamp}
        </finalName>
        
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.4</version>
                <configuration>
                    <timestampFormat>yyyyMMddHHmmss</timestampFormat>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>create-timestamp</goal>
                        </goals>
                    </execution>
                </executions>
                <inherited>false</inherited>
       </plugin> 
        
        <!--打war则在 maven-war-plugin 里面的 warName 里面-->     
       <plugin>
             <artifactId>maven-war-plugin</artifactId>
             <version>2.2</version>
             <configuration>
             <!--最终打包名-->
			   <warName>${project.artifactId}-${project.version}-${maven.build.timestamp</warName>
               <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
       </plugin>
     </plugins>    
</build>

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

jar包
在这里插入图片描述
war包
在这里插入图片描述

  1. <plugins></plugins>使用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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墩墩分墩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值