2011-06-01 6 views
1

Le suivantes est mon script ant:propriétés de script ant

<project name="nightly_build" default="main" basedir="C:\Work\6.70_Extensions\NightlyBuild"> 
    <target name="init"> 
     <sequential> 
      <exec executable="C:/Work/Searchlatestversion.exe"> 
       <arg line='"/SASE Lab Tools" "6.70_Extensions/6.70.102/ANT_SASE_RELEASE_"'/> 
      </exec> 
      <property file="C:/Work/latestbuild.properties"/> 
      <sleep seconds="10"/> 
      <echo message="The product version is ${Product_Version}"/> 
      <exec executable="C:/Work/checksnapshot.exe"> 
       <arg line='"ANT_SASE_RELEASE_${Product_Version}_SASE Lab Tools-NightlyBuild" ANT_SASE_RELEASE_${Product_Version}_AnalyzerCommon-NightlyBuild ${Product_Version}-AppsMerge' /> 
      </exec> 
      <property file="C:/Work/checksnapshot.properties"/> 
      <tstamp> 
       <format property="suffix" pattern="ddMMyyyyHHmm"/> 
      </tstamp> 
     </sequential> 
    </target> 
    <target name="main" depends="init"> 
      <echo message="loading properties files.." /> 
      <sleep seconds="10"/> 
      <echo message="Backing up folder" /> 
      <move file="C:\NightlyBuild\NightlyBuild" tofile="C:\NightlyBuild\NightlyBuild.${suffix}" failonerror="false" /> 
      <parallel> 
       <exec executable="C:/Work/sortfolder.exe"> 
        <arg line="6" /> 
       </exec> 
       <exec executable="C:/Work/6.70_Extensions/NightlyBuild/antc.bat"> 
       </exec> 
      </parallel> 
    </target> 
</project> 

Fondamentalement, la séquence va quelque chose comme ceci:

  1. Je courrai Searchlatestversion.exe et écrire latestbuild.properties
  2. Utilisation du latestbuild.properties i obtiendra ${Product_Version} et voudrait permettre l'accès de checksnapshot.exe à latestbuild.properties et obtenir ${Product_Version}
  3. checksnapshot.exe produira alors checksnapshot.properties qui sera ensuite utilisé par la cible dans le principal antc.bat

que je fais quelque chose de mal ici? semble ${Product_Version} n'est pas bien reçu par checksnapshot.exe

Répondre

1

Vous semblez avoir une période d'attente codée en dur de 10 secondes pour Searchlatestversion pour écrire votre fichier. Si l'exécutable ne se termine pas à l'intérieur de ce délai, ${Product_Version} ne peut pas être lu à partir du fichier.

Avez-vous envisagé d'utiliser la tâche Ant Waitfor? Comme son nom l'indique, ceci va attendre une certaine condition avant de permettre au reste de la tâche de progresser. Vous pouvez faire quelque chose comme

<property name="props.file" value="C:/Work/latestbuild.properties"/> 
<waitfor maxwait="10" maxwaitunit="second"> 
    <available file="${props.file}"/> 
</waitfor> 
<property file="${props.file}"/> 
0

Est-ce que Searchlatestversion.exe produire le fichier C: /Work/latestbuild.properties?

Si oui, ne devriez-vous pas attendre avant vous chargez ce fichier de propriétés?

Vous avez ceci:

 <exec .../> 
     <property file="C:/Work/latestbuild.properties"/> 
     <sleep seconds="10"/> 

Si vous pas ceci:

 <exec ... /> 
     <sleep seconds="10"/> 
     <property file="C:/Work/latestbuild.properties"/> 
Questions connexes