我正在升级一个大型构建系统以使用 Maven2 而不是 Ant,我们有两个相关的要求我坚持:
我们需要生成一个带时间戳的工件,所以是包的一部分 阶段(或任何地方),而不是构建
project-1.0-SNAPSHOT.jar
我们 应该正在 build 中
project-1.0-20090803125803.jar
(其中
20090803125803
只是 jar 的YYYYMMDDHHMMSS
时间戳 建)。唯一真正的要求是时间戳是 生成文件的文件名。
version.properties 文件中必须包含相同的时间戳 在生成的 jar 中。
运行时生成的pom.properties中包含此信息,
例如,mvn package
但被注释掉了:
#Generated by Maven
#Mon Aug 03 12:57:17 PDT 2009
任何关于从哪里开始的想法都会有所帮助!谢谢!
最佳答案
Maven 2.1.0-M1 或更高版本已内置特殊变量 maven.build.timestamp
。
<build>
<finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName>
</build>
见 Maven documentation了解更多详情。
对于较旧的 Maven 版本,请查看 maven-timestamp-plugin或 buildnumber-maven-plugin .
如果您使用 maven-timestamp-plugin,您可以使用类似的东西来操作生成的工件名称。
<build>
<finalName>${project.artifactId}-${project.version}-${timestamp}</finalName>
</build>
buildnumber-maven-plugin 的这个配置应该创建一个包含时间戳值的 ${timestamp} 属性。似乎没有办法直接用这个插件创建 version.properties 文件。
<configuration>
<format>{0,date,yyyyMMddHHmmss}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
关于java - 如何将时间戳信息添加到 Maven 工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224359/