Maven定做化打包后的包名(加入时间戳)

本文介绍了如何使用Maven自定义项目的打包名称,包括添加公司标识及时间戳等信息,以便更好地管理和追踪构建版本。
Maven定制化打包后的包名(加入时间戳)

Maven定制化打包后的包名

默认Maven的包名为:

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

你可以定制为其它你想要的名字,如:

<build> <finalName>${project.artifactId}-${project.version}-company</finalName> </build>

<build> <finalName>${project.artifactId}</finalName> </build>

加入时间戳:

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.build.timestamp.format>yyyy-MM-dd_HH_mm</maven.build.timestamp.format> </properties> <build> <finalName>${project.artifactId}-${maven.build.timestamp}</finalName> </build>
<think>首先,用户的问题是如何在Maven打包时在生成的文件名或内容中加入时间戳信息。参考的引用提供了几种方法。从引用中提取关键信息:-引用[1]提到在pom.xml中设置属性:`<properties><maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format></properties>`-引用[2]介绍了两种方法:-方法一:在pom.xml的properties中设置时间戳格式,然后在finalName中使用该属性:`<build><finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName></build>`-方法二:使用build-helper-maven-plugin插件(推荐)-引用[3]是关于pom.xml详解的,但没有提供具体实现时间戳的方法。-引用[4]详细展示了使用build-helper-maven-plugin插件的方法:通过timestamp-property目标设置一个自定义属性,然后在finalName中使用该属性。用户的需求是:在Maven打包时,生成的包名中包含时间戳信息,格式类似于ROOT-2.1.1-{yyyyMMddHHmmss}。引用中的方法可以应用到这里。系统指令要求:-所有行内数学表达式使用$...$格式,但这里没有数学表达式,主要是代码和文本。-独立公式使用$$...$$,同样不适用。-LaTeX语法正确:这里的回答主要是文字和代码块,不需要LaTeX。-使用中文回答。-生成相关问题。-回答中引用的段落末尾自然地添加引用标识,例如[^1]。回答结构需要清晰,帮助用户逐步解决问题。结构回答:1.**介绍解决方案**:基于引用,有两种主要方法:使用Maven内置属性和使用插件。2.**详细步骤**:-方法一:使用内置属性。-设置时间戳格式。-finalName中使用。-方法二:使用插件(推荐,更灵活)。-添加插件并配置时间戳属性。-finalName中使用。3.**代码示例**:在回答中使用代码块展示pom.xml配置。4.**最终效果**:解释生成的包名。5.**注意事项**:比如在finalName中使用属性可能会导致一些问题,确保插件版本等。6.**自然引用**:当提到引用内容时,添加引用标识。生成相关问题:-基于主题,生成几个相关问题,如:如何自定义时间戳格式?如何在打包内容中加入时间戳?插件的其他应用等。参考用户上次需求:用户希望生成包名为ROOT-2.1.1-{yyyyMMddHHmmss},引用中有类似配置。选择推荐方法:引用[2]和[4]推荐方法二,使用插件,因为它更灵活和可靠。引用[4]提供了详细配置。所以,在回答中优先介绍使用插件的推荐方法,然后提内置方法,但强调插件的优势。回答大纲:1.引言:确认用户需求。2.推荐方法(插件法):-添加build-helper-maven-plugin配置。-finalName中使用。3.替代方法(内置属性法):-设置maven.build.timestamp.format。-finalName中使用。4.示例代码:展示完整pom.xml片段。5.注意事项:如执行命令mvnpackage后效果。6.相关问题生成。添加引用标识:当引用时,如引用[1]、[2]、[4],在句子末尾添加[^数字]。最终代码块需要使用正确的语法。</think> ### Maven打包添加时间戳到文件名的方法 在Maven项目中实现打包时文件名包含自定义时间戳(如 `ROOT-2.1.1-{yyyyMMddHHmmss}.war`),有 **两种主要方法**: - **推荐方法**:使用 `build-helper-maven-plugin` 插件(更灵活,支持自定义格式和时区)。 - **替代方法**:利用Maven内置属性(简单但格式选项有限)。 以下分步说明: --- #### 方法一:使用插件(推荐) 此方法通过插件生成自定义时间戳属性,并在最终包名中引用。步骤如下: 1. **在 `pom.xml` 中添加插件配置**: - 添加 `build-helper-maven-plugin` 插件,定义时间戳属性(如 `build.time`)。 - 配置格式(`pattern`)、时区(`timeZone`)等。 2. **设置包名(`finalName`)**: - 在 `<build>` 中定义 `finalName`,引用时间戳属性(`${build.time}`)。 ```xml <project> <!-- 其他配置省略... --> <build> <!-- 最终包名格式: projectId-version-时间戳 --> <finalName>${project.artifactId}-${project.version}-${build.time}</finalName> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>build.time</name> <!-- 自定义属性名 --> <pattern>yyyyMMddHHmmss</pattern> <!-- 时间格式 --> <timeZone>GMT+8</timeZone> <!-- 时区设置 --> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> ``` **效果**: 执行 `mvn package` 后,生成的包名如 `myproject-2.1.1-20231230143045.war`,其中 `20231230143045` 为当前时间戳(格式为年月日时分秒)[^4]。 **优点**:灵活支持格式自定义(如 `yyyyMMdd_HHmmss`)和时区调整,避免内置属性的兼容问题[^2][^4]。 --- #### 方法二:使用Maven内置属性(简单实现) Maven自带 `maven.build.timestamp` 属性,但格式选项较少: 1. **在 `pom.xml` 中设置时间格式**: ```xml <properties> <!-- 定义时间戳格式(支持部分Java SimpleDateFormat) --> <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> </properties> ``` 2. **设置包名(`finalName`)**: ```xml <build> <finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName> </build> ``` **效果**:包名生成如 `myproject-2.1.1-20231230143045.war`[^1][^2]。 **缺点**:格式选项有限(不支持自定义时区),且某些旧版Maven可能不兼容[^1]。 --- #### 注意事项 1. **位置要求**:`finalName` 需在 `<build>` 内定义,确保与插件配置同级。 2. **命令执行**:每次运行 `mvn package` 时,时间戳自动更新。 3. **内容添加时间戳**:如需在文件内容(如MANIFEST.MF)中加入时间戳,可通过 `maven-jar-plugin` 扩展(需单独配置)[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值