2010-08-10 3 views
8

gezeigt unten in meinem Build ausbauen:Datum Kommentar von Apache Ant Property Aufgabe Ich verwende die Property Aufgabe Skript

<target name="build-brand" depends="-init" description="Adds version information to branding files."> 
    <propertyfile file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties"> 
     <entry key="currentVersion" value="${app.windowtitle} ${app.version}" /> 
    </propertyfile> 
</target> 

arbeitet Aufgabe wie erwartet, mit der Ausnahme, dass jedes Mal, wenn ich das Projekt zu erstellen, das Datum Kommentar Zeile der Datei Bundle.properties wird mit dem aktuellen Zeitstempel aktualisiert. Dies geschieht auch, wenn die app.version Variable ändert sich nicht und führt zu einem nicht notwendig zur Versionskontrolle verpflichtet ausschließlich aus folgendem diff aus:

--- Base (BASE) 
+++ Locally Modified (Based On LOCAL) 
@@ -1,4 +1,4 @@ 
-#Thu, 22 Jul 2010 15:05:24 -0400 
+#Tue, 10 Aug 2010 13:38:27 -0400 

Wie kann ich Zusatz oder entfernen Sie dieses Datum Kommentar von dem verhindern .properties Datei? Ich habe eine Löschoperation in einem verschachtelten Element der Eigenschaftendatei berücksichtigt, aber ein Schlüsselwert ist erforderlich.

Antwort

5

Dies ist keine großartige Lösung, aber wie wäre es, den Kommentar alle zusammen zu entfernen?

<target name="build-brand" depends="-init" description="Adds version information to branding files."> 
    <propertyfile file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties"> 
     <entry key="currentVersion" value="${app.windowtitle} ${app.version}" /> 
    </propertyfile> 
    <replaceregexp file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties" match="^#.*\n" replace=""/> 
</target> 
+0

ausgezeichnete Workaround! – javacavaj

+1

durch Weglassen von byline = "true" andere Kommentare sind erhalten – Tarnschaf

+0

Das stimmt. Guter Punkt. – JasonMArcher

0

Versuchen: <propertyfile file="..." comment="">

Edit:. Welche wird wahrscheinlich nicht funktionieren :(Es ist wie der Täter aussieht, ist tatsächlich Properties.store(OutputStream, String):

Als nächstes wird eine Kommentarzeile ist immer geschrieben, bestehend aus einem ASCII # Zeichen, das aktuelle Datum und die Uhrzeit (wie durch das Verfahren hergestellt, wenn toString des Datums für die aktuelle Zeit), und eine Linientrenner, wie durch den Writer erzeugt.

+0

Umm. Ich habe die Quelle überprüft und es scheint keine Möglichkeit zu geben, dies zu umgehen. Sowohl die Klasse LayoutPreservingProperties (standardmäßig verwendet) als auch die Klasse Properties (die verwendet wird, wenn useJDKProperties auf true festgelegt ist) haben dies in ihrer Speichermethode. – javacavaj

1

Wenn Sie verwenden eine einzelne Eigenschaft in einer Datei Echo nur setzen:

<echo output="somefiles.properties">lastmodified=${lastmodified}</echo> 
Verwandte Themen