Метки времени в журнале Муравья?

Можно создать $i внешняя сторона цикл и сделать $i++ у основания цикла.

11
задан Tiger 7 August 2009 в 18:13
поделиться

2 ответа

Вы можете определить макрос Ant для установки текущей метки времени, а затем вызывать макроопределение каждый раз, когда вам нужно ссылаться на него во всем файле build.xml

Следующий macrodef установит метку времени на property (вы можете добавить атрибут в macrodef, если хотите настроить свойство, которое он устанавливает):

<macrodef  name="set.timestamp">
  <sequential>
    <tstamp>
      <format property="current.time" pattern="MM/dd/yyyy hh:mm"/>
    </tstamp>
  </sequential>
</macrodef>

Затем, чтобы использовать его, просто откройте свойство, установленное macrodef, как вам нужно:

<target name="doFoo" depends="dir.check" if="dir.exists">
  <set.timestamp/>
  <!--in this example, just echo the timestamp -->
  <echo message="${current.time}"/>
</target>

Для получения дополнительной информации о ant macrodefs см. документацию .

6
ответ дан 3 December 2019 в 03:36
поделиться

Учитывая, что свойства в ant неизменяемы, вам нужно сделать что-то немного странное, иначе вы просто будете регистрировать одну и ту же временную метку снова и снова.

Использование antcall дает вам свежую сессию, что означает, что вы можете повторно использовать свойство, хотя это немного неуклюже.

<macrodef name="timestamp.echo"> 
  <attribute name="message"/>    
  <sequential> 
    <antcall target="_timestamp.echo">
        <param name="message" value="@{message}" />
    </antcall>
  </sequential> 
</macrodef>  


<target name="_timestamp.echo"> 
   <tstamp> 
    <format property="current.time" pattern="dd/MM/yyyy hh:mm:ss"/> 
   </tstamp>          
   <echo message="${current.time} ${message}"/> 
</target>

Если вы используете Ant 1.8, вы можете использовать local, который намного чище

<macrodef name="timestamp.echo"> 
  <attribute name="message"/>    
  <sequential> 
   <local name="current.time" />
   <tstamp> 
    <format property="current.time" pattern="dd/MM/yyyy hh:mm:ss"/> 
   </tstamp>          
   <echo message="${current.time} @{message}" />
  </sequential> 
</macrodef>  

И вот как вы можете его использовать

<target name="testTsEcho" depends="init" description="blah">
    <timestamp.echo message="test" />
    <sleep seconds="10" />
    <timestamp.echo message="test2" />
</target>
10
ответ дан 3 December 2019 в 03:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: