2016-11-15 2 views
0

Hy!Comparer deux chaînes dans ANT

Je dois comparer deux chaînes dans ANT avec la tâche <equals> mais même si la console affiche correctement la chaîne, cela ne fonctionne pas pour mon code. Voici le code:

<echo file="file.txt" append="true">AB${line.separator}</echo> 
<echo file="file.txt" append="true">CD${line.separator}</echo> 

<loadfile property="content" srcFile="file.txt"> 
    <filterchain> 
     <filterreader classname="org.apache.tools.ant.filters.HeadFilter"> 
     <param name="lines" value="1" /> 
     </filterreader> 
    </filterchain> 
</loadfile> 
<echo>${content}</echo> 

      <if> 
       <equals arg1="${content}" arg2="AB" /> 
        <then><echo message="OK"/></then> 
        <else><echo message="not OK"/></else> 
      </if> 

le résultat de la construction est:

11:24:23  [echo] AB 
11:24:23  [echo] not OK 

Pouvez-vous me dire comment résoudre ce problème s'il vous plaît? et thnks :)

+0

Veuillez noter que la tâche "if" n'est pas une fonctionnalité ANT standard, elle fait partie de l'extension ant-contrib tierce partie. –

Répondre

1

Je suspecte l'attribut arg2 manque le séparateur de ligne. Essayez ceci:

<equals arg1="${content}" arg2="AB${line.separator}" /> 

Ou, mieux encore, essayez de nettoyer content de tous les séparateurs de ligne.

+0

oui! C'était ça. Je vous remercie – Carlinto