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

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

 

构建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

 

目录
相关文章
|
2月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
2月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
226 8
|
2月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
221 3
|
2月前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
3月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
150 1
|
3月前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
42 6
|
3月前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
1687 1
|
3月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
171 4
|
3月前
|
Java Maven
用graalvm将maven项目打包成可执行文件
本文介绍了如何使用GraalVM将Maven项目打包成可执行文件,包括引入依赖和插件、编写代码、执行打包命令以及运行查看结果的完整过程。
235 0
用graalvm将maven项目打包成可执行文件
|
3月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
389 0