title: Target overriding in Ant
body: <p>Is there a possibility to literally override a target or emulate this somehow?</p>
  
  <p>So, when I call</p>
  
  <pre><code>&lt;target perform-after="release"&gt;
       &lt;do-something /&gt;
  &lt;/target&gt;
  </code></pre>
  
  <p>It will act like this:</p>
  
  <pre><code>&lt;target name="release"&gt;
       &lt;antcall target="release" /&gt; &lt;!-- call previous version, not recursion --&gt;
       &lt;do-something /&gt; 
  &lt;/target&gt;
  </code></pre>
  
  <p>I think it has a meaning, I'll describe on Android example:</p>
  
  <p>We have an <code>.xml</code> templates for every <code>build.xml</code> in SDK folder (<code>{$SDK}/tools/ant/*.xml</code>), these files are included in every generated <code>build.xml</code> for each project. There are only <code>-pre-compile</code>, <code>-pre-build</code> and <code>-post-compile</code> targets that empty and easy to override. But there is no empty <code>-post-release</code> target, for example. Google recommends in generated <code>build.xml</code> comments just to copy-paste a target to my own <code>build.xml</code> and then tune it. But I think it is not ok, because if Google will change something in this target inside a template, I will never know about I am using outdated version.</p>