2010-12-02 120 views
2

有沒有辦法在ant中從zip文件中加載屬性?Ant從一個zip文件中讀取一個屬性文件

我有一個項目的ant文件,它需要使用zip文件中的文件中的一些屬性。該zip文件存儲在我們的CI服務器上的已知位置。

/known location/file.zip 
    | 
    +--- properties/details.properties 

下不起作用

<project name="test" basedir="." > 
    <property file="/known location/file.zip/properties/details.properties"/> 
    .... 
</project> 

回答

1

由於zip文件和jar文件基本相同,您可以使用property任務的url窗體,並使用jar網址。

<property url="jar:file:/known location/file.zip!/properties/details.properties" /> 

注意jar:file:在URL的前部,和從!/的屬性的路徑分離的zip文件位置的文件的zip內。

有關jar: url的語法的詳細信息,請參閱JarURLConnection文檔。

1

您可以將文件解壓縮到一個臨時位置,然後再加載解壓的屬性文件

<target name="load-zipped-props"> 
    <unzip src="${propfile-name}.zip" dest="${unzip-destination}" /> 
    <property file="${unzip-destination}/${propfile-name}.properties"/> 
</target> 
+0

謝謝你。我只需要確保每個需要屬性的目標都依賴於負載壓縮道具目標。 – 2010-12-02 16:13:07

+0

是的,你可能想要添加一些代碼來刪除解壓縮的文件,如果它已經存在,在解壓縮之前 – 2010-12-02 16:41:52