2011-11-08 4 views
1

J'ai 2 vars dont j'ai besoin. le premier est DSTAMP avec le formatage aaaa-MM-jj et l'autre est le buildNumber de mon fichier .build. Dans une structure simple comme ceci:Ant construire plusieurs jar avec plusieurs manifestes mais unique BuildNumber

<project .....> 

    <property ....> 

    <target ....> 

    <target .....> 

</project> 

Ma question est, comment puis-je régler le $ {} et build.number DSTAMP comme une propriété? J'ai essayé de le faire:

<project .....> 

    <tstamp> 
    <format property="DSTAMP" pattern="yyyy-MM-dd" /> 
</tstamp> 

    <buildnumber file=".build"/> 

    <property ....> 

    <target ....> 

    <target .....> 

</project> 

Je pensais que je pouvais alors accéder avec $ {build.number} et {$} DSTAMP partout dans mon script de fourmi, mais il dit jeton inattendu. Comment puis-je stocker ces propriétés pour y accéder n'importe où?

Version Ant 1.5.4. Il semble l'accepter dans Ant 1.6+ mais je préfère ne pas changer ma bibliothèque juste pour cela.

Répondre

1

Ok j'ai utilisé une autre solution comme tâche buildNumber ne se comporte pas comme je veux:

<project name="MyProject" default="all" basedir="."> 

<taskdef resource="net/sf/antcontrib/antlib.xml"/> 

<tstamp> 
    <format property="DSTAMP" pattern="yyyy-MM-dd" /> 
    <format property="TODAY" pattern="yyyy-MM-dd HH:MM:SS" /> 
</tstamp> 
<property file=".build"/> 
<property name="buildNum" value="${build.number}"/> 

[... some tasks ...] 

<target name="incrementVersion"> 
     <echo>Building version ${build.number} success</echo> 
     <propertyfile file="./.build" comment="Build Number"> 
       <entry key="build.number" type="int" operation="+" default="1000" pattern="0000"/> 
     </propertyfile> 
</target> 

<target name="all" depends="some,other,target,incrementVersion"/> 
</project> 

De cette façon, je suis certain à 100% qu'il n'incrémenter à la fin de mes tâches et que si elle réussir. Seul problème mineur ici, vous devez exécuter incrementVersion une fois pour pouvoir initialiser le paramètre buildNumber. Je pourrais en faire un peu si le contrôle existe mais puisque mon fichier ne sera jamais effacé je m'en fous. Vous devez utiliser Ant 1.6+ et Ant Contrib. J'utilise Ant 1.8.2 et Ant Contrib 1.0b3 merci à tous.

Questions connexes