2016-11-15 1 views
0

Hy!Vergleichen Sie zwei Saiten in ANT

Ich muss zwei Zeichenfolgen in ANT mit <equals> Task vergleichen, aber selbst wenn die Konsole die richtige Zeichenfolge anzeigen, funktioniert es nicht für meinen Code. Dies ist der 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> 

das Ergebnis des Build ist:

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

Können Sie mir sagen, wie dieses Problem zu beheben, bitte? und thnks :)

+0

Bitte beachten Sie, dass die "if" Task keine Standard-ANT-Funktion ist, sondern Teil der 3rd-Party-Anti-Contrib-Erweiterung. –

Antwort

1

Ich vermute, arg2 Attribut fehlt die Zeile Trennzeichen. Versuchen Sie folgendes:

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

Oder, noch besser, versuchen content aller Zeilenseparatoren zu reinigen.

+0

ja! Das war es. Vielen Dank – Carlinto