Fork me on GitHub

【技术贴】Maven打包文件增加时间后缀

 

构建war包,或者jar包的,时候,maven会自动增加一个版本号和时间放在jar包后面比如poi-3.9-20131115.jar这样子,但是我自己打war包,总是给我生成一个快照的后缀report-0.0.1-SNAPSHOT.war这个样子,所以我想干掉这个后缀,或者说我什么都不用,那么本篇教程围绕3个问题展开。

1.后缀什么都不加,需要在build节点下跟上一个<finalName>节点即可。生成的war包或者jar包不含任何杂余。

打包结果:report.war

<build>
        <finalName>report</finalName>
 </build>

 

2. 后缀跟上时间戳,这个需要在<finalName>节点下使用maven的内置变量maven.build.timestamp,会生成带时间戳的war包

打包结果:report-20131115-1450.war

<build>
    <finalName>${project.artifactId}-${maven.build.timestamp}</finalName>
</build>

还有一种方法,使用maven的插件,buildnumber-maven-plugin

<finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName>
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>buildnumber-maven-plugin</artifactId>
  <version>1.0-beta-4</version>
  <executions>
    <execution>
      <phase>initialize</phase>
      <goals>
        <goal>create</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <doCheck>false</doCheck>
    <doUpdate>false</doUpdate>
    <revisionOnScmFailure/>
    <format>{0,date,yyyyMMdd}</format>
    <items>
      <item>timestamp</item>
    </items>
  </configuration>
</plugin>

 

3.后缀跟上快照号

在dependencies节点之前的version节点下写入即可。

<groupId>com.riambsoft</groupId>
    <artifactId>report</artifactId>
    <packaging>war</packaging>
    <!-- 快照
    <version>0.0.1-SNAPSHOT</version>-->
<!-- 后缀时间 -->
    <version>${maven.build.timestamp}</version>
    <name>report</name>
    <url>http://www.riambsoft.com</url>
    <dependencies>

 

参考帖子 

1.http://www.dewen.org/q/7578

2.http://www.iteye.com/problems/80754

3.http://blog.csdn.net/woxueliuyun/article/details/9170369

 

posted @ 2013-11-15 15:10  _落雨  阅读(7627)  评论(2编辑  收藏  举报