ANT: Properties in <replace>-Statement nutzen?

rantanohneplan

Grünschnabel
Hallo!

Ich versuche per ANT einen Zeilenumbruch an eine bestimmte Stelle in einem Textfile zu erzeugen. Hierzu lese ich mir die entsprechende Zeile als property ein, da ich den genauen Text der Zeile nicht kenne, sondern nur den Anfang. Dies geschieht bei mir so:

Code:
<loadfile srcfile="META-INF/MANIFEST.MF" property="start">
  <filterchain>
    <linecontains>
      <contains value="Bundle-Activator"/>
    </linecontains>
  </filterchain>
</loadfile>

Die Zeile wird also als property "start" gespeichert. Nun möchte ich einfach diese Zeile durch einen Zeilenumbruch ersetzen. Hierzu versuche ich die property in einem <replace>-Statement zu nutzen. Dies scheint allerdings nicht zu funktionieren...mache ich etwas falsch oder geht das einfach nicht? Das muss doch eigentlich möglich sein

Code:
<replace file="/tmp/MANIFEST.MF" token="${start}" value="${line.separator}"/>

Was mir ansonsten auch noch weiterhelfen würde wäre wie man eine Passage aus einem Text ausliest. Also so, dass ich ihm sage von wo bis wo er einlesen soll. Das wäre noch eine schönere Lösung...als Workaround dazu könnte ich mir auch vorstellen, dass man vielleicht irgendwie die Nummer einer Zeile per ANT rausfinden kann, um dann zum Beispiel <tailfilter> oder so zu nutzen.

Hat vielleicht jemand eine Idee oder Lösungen für meine Probleme?

Vielen Dank im Voraus!
Rantan
 
Zuletzt bearbeitet:
Ist das so gedacht dass du aus META-INF/MANIFEST.MF ausliest und das replace auf temp/MANIFEST.MF anwendest.

Versuch mal
Code:
<replace file="/tmp/MANIFEST.MF" token="${start}" property="line.separator"/>
 
Danke, das mit dem ${line.separator} war schon völlig richtig! Aber du hast mich auf die richtige Lösung gebracht. Das ist völliger Quatsch, dass die properties an der Stelle nicht funktionieren. Der Fehler war einfach, dass in der Property "${start}" ein String MIT einem line.separator drin war und ich diesen in einer Datei OHNE line.separator gesucht habe. Ich musste also beim auslesen des Strings lediglich ein <striplinebreaks/> hinzufügen!

Vielen Dank dafür
 
Zurück