使用Ant将构建时间嵌入到JAR Manifest中

时间:2010-11-10 10:30:28

标签: java ant manifest build-time

如果我想使用ant在JAR清单中嵌入当前时间,那么我可以使用“现在”使用的ant属性以及哪个manifest属性最适合放置此信息?

我目前有以下

  <manifest>
    <attribute name="Signature-Title" value="${project.name}"/>
    <attribute name="Signature-Version" value="${release.version}"/>
    <attribute name="Signature-Vendor" value="XXX"/>
    <attribute name="Built-By" value="${user.name}"/>
  </manifest>

2 个答案:

答案 0 :(得分:22)

您可以使用tstamp task

 <tstamp>
    <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" />
  </tstamp>

  <manifest>
    <attribute name="Signature-Title" value="${project.name}"/>
    <attribute name="Signature-Version" value="${release.version}"/>
    <attribute name="Signature-Vendor" value="XXX"/>
    <attribute name="Built-By" value="${user.name}"/>
    <attribute name="Built-Date" value="${TODAY}"/>
  </manifest>

此任务使用当前时间戳设置三个属性(DSTAMP,TSTAMP和TODAY),每个属性采用不同的默认格式(检查链接)。使用嵌套的format节点,您可以为其中任何节点定义自定义格式。

答案 1 :(得分:0)

仅在jarwar META-INF / MANIFEST.MF中使用UTC格式(不使用没有TZ的本地化日期/时间,因为您将丢失TimeZone信息)。

请参阅How to have Maven show local timezone in maven.build.timestamp?