Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Ant将构建时间嵌入JAR清单_Java_Ant_Manifest_Build Time - Fatal编程技术网

Java 使用Ant将构建时间嵌入JAR清单

Java 使用Ant将构建时间嵌入JAR清单,java,ant,manifest,build-time,Java,Ant,Manifest,Build Time,如果我想使用ant将当前时间嵌入JAR清单中,是否有一个ant属性可以用于“now”以及哪个清单属性最适合放置此信息 我目前有以下几点 <manifest> <attribute name="Signature-Title" value="${project.name}"/> <attribute name="Signature-Version" value="${release.version}"/> <attribute

如果我想使用ant将当前时间嵌入JAR清单中,是否有一个ant属性可以用于“now”以及哪个清单属性最适合放置此信息

我目前有以下几点

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

您可以使用

 <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),每个属性都采用不同的默认格式(检查链接)。使用嵌套的
格式
节点,您可以为它们中的任何一个定义自定义格式。

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


请参见

值得注意的是,将构建时间嵌入清单将导致每次重建战争,即使没有任何更改;不太干净。