#java #ant #timestamp
#java #ant #временная метка
Вопрос:
Я хотел бы сохранить временную метку UNIX (т. Е. секунды с момента эпохи) в свойстве Ant для последующего использования в паре целей сборки. Это кажется невозможным:
<tstamp>
<format property="build.time" />
</tstamp>`
…генерирует форматированную временную метку.
<propertyfile file="foo.properties">
<entry key="build.time" type="date" default="now" />
</propertyfile>
…также генерирует форматированную временную метку.
Я надеюсь, что это возможно без использования <exec>
или подобного (поскольку мы иногда будем запускать сборку в Windows).
Ответ №1:
Быстрый поиск в Google выдает:
http://www.norio.be/blog/2010/08/getting-unix-time-epoch-ant-build-file
<target name="print-epoch">
<script language="javascript">
<![CDATA[
property = project.setProperty("now",Math.floor((new Date()).getTime()/1000));
]]>
</script>
<echo message="${now}" />
</target>
Другие подходы, которые были бы более чистыми, IMO заключались бы в
-
создайте свою собственную anttask. На самом деле это не так сложно;http://ant.apache.org/manual/develop.html
-
Используйте плагин Maven exec для выполнения Java, чтобы сделать это:http://mojo.codehaus.org/exec-maven-plugin /
Комментарии:
1. Хм, интересно. Я много гуглил, но, думаю, я не включил «эпоху» в свой запрос. Тем не менее, было бы неплохо сделать это без выполнения JavaScript.
2. Да, другой подход, который был бы более чистым, IMO, заключался бы в создании вашей собственной пользовательской anttask. На самом деле это не так сложно; ant.apache.org/manual/develop.html