Possuo uma tarefa de compilação, inclusive ela é gerenciada pelo Hudson (ê ferramenta boa!), essa tarefa compila vários projetos, montar .jar e .war que compõem uma grande aplicação. Eu precisava dar um “lock” nesses projetos para garantir a segurança das minhas versões. Sei que posso utilizar o Ant-Contrib pela possibilidade de utilizar um try finally em tasks do Ant, assim se falhar o recurso é destravado, o problema é como dar um “lock” e “unlock”.
<trycatch>
<!-- Aqui eu efetuaria o lock ninguém poderia alterar mais nada durante a compilação-->
<try>
<!-- Efetuando compilação de todos os meus projetos -->
<antcall target="gera-versao"/>
</try>
<finally>
<!-- Aqui eu efetuaria o unlock, usaria o finally pois independente do resultado da compilação os fontes têm que ser destravados -->
</finally>
</trycatch>