2012-06-12 31 views
1

當我在Netbeans中編譯我的項目時,我想自動生成一個包含自動增量和日期的內部版本號的文件,因此我將以下內容添加到了我的項目build.xml文件中。可以抑制Ant屬性文件中的自動時間戳嗎?

<target name="-pre-jar" > 
    <propertyfile file="${src.dir}\buildstring.txt" > 
     <entry key="devbuild" value="1" type="int" operation="+"/> 
     <entry key="devbuildtime" type="date" value="now" pattern="yyyy MM dd hh_mm" /> 
    </propertyfile> 
</target> 

當Ant任務執行時,螞蟻會自動添加一個日期戳作爲文件

#Tue, 12 Jun 2012 16:09:24 -0500 
devbuild=8 
devbuildtime=2012 06 12 04_09 

的第一行是有什麼辦法可以從自動添加的第一行的日期評論停止螞蟻?

回答

3

PropertyFile Ant任務使用java.util.Properties對象實現。該Properties.store()方法是記錄與下面的註釋:

接下來,註釋行,總是寫入,包括一個ASCII#字符,當前的日期和時間(就好像使用Date的當前toString方法生產時間)和Writer生成的行分隔符。

因此,無法使用PropertyFile任務禁用日期評論。刪除日期註釋需要不同的解決方案,例如使用不同的技術(例如,使用Ant腳本或自定義Ant任務)後處理屬性文件或編寫屬性文件。

參見:Remove comments in properties file java

+0

謝謝,我結束了使用屬性文件跟蹤自動增量內部版本號。我添加了第二個任務,從文件屬性文件讀取內部版本號,然後使用ECHO創建一個沒有評論的buildstring.txt文件。有點乏味,但它有效。 – JayG

2

這裏是我的解決方案:1。 寫在一個臨時文件屬性 2.將臨時文件使用filterchain最終屬性文件跳過第一行 3.刪除臨時文件

<propertyfile file="temp.properties" > 
    <entry key="property.1" value="value1"/> 
    <entry key="property.2" value="value2"/> 
</propertyfile> 

<copy file="temp.properties" tofile="final.properties"> 
    <filterchain> 
     <headfilter skip="1"/> 
    </filterchain> 
</copy> 
<delete file="temp.properties"/>