2009-12-30 83 views
0

在我的Ant構建文件中,我使用了一個加密屬性,我正在讀取文本文件。我需要在構建過程中將其解密爲引導目標。我該怎麼做呢?有什麼辦法可以在ANT構建文件中指定引導目標?

作爲一個例子,這裏是文件的內容。

MYFILE.TXT

ENCRYPTED=encryptedtext 

的build.xml

<project name="myProject" default="all"> 
<property file="myFile.txt"> 

<!--Specify bootstrap target here to perform the decryption task--> 

<target name="myTarget"> 
<!--Use the decrypted property here--> 

我得到的一個方式做,這是設置進行解密的目標,並添加它作爲所有必要目標中的一個depends。我不想這樣做。我對替代品感興趣,使得該過程儘可能地乾淨。這也意味着我已經考慮過解決方案,「」爲什麼不在別處執行解密並從那裏讀取?「我對它們不感興趣。

謝謝。

回答

5

在我看來,與您所說的目標相反,我認爲最簡潔的方式來設置您的要求使用螞蟻提供的depends結構。它是爲了這個目的而開發的。

如果你想確保這個解密運行每次運行Ant進程的時間,你還是要抵制使用depends工具的衝動,你必須把你的解密過程中你ant.bat的選項,在調用Ant之前,或者將ant.bat包裝在你自己的decryptAndCallAnt.bat中。

+0

同意。爲什麼另一個目標不「乾淨」? – 2009-12-30 20:15:15

+0

取決於不能用於傳遞參數,我們可以使用antcall來完成。但是,antcall也會重新構建構建文件,所以性能開銷會隨着構建文件的大小而變化,這可能不是微不足道的。所以,大多數時候Depends更適合。 – omermuhammed 2010-01-04 16:21:46

+0

我應該澄清我的意思是「乾淨」。我只是對ANT是否提供這樣一個引導目標感興趣。我明白你的意思,我同意。 – 2010-01-04 16:22:57

4

如果implement your own task進行解密,你應該能夠做這樣的事情:

<decrypt file="myFile.txt" refid="decrypted.refid"/> 
<property refid="decrypted.refid"/> 

你實現自己的任務調用decrypt,其內容爲myFile.txt,並定義了裁判-ID decrypted.refid資源。 property任務可以使用「ref-id」屬性從任何類型的資源中讀取屬性。您需要仔細研究Ant manual,以瞭解如何定義自己的任務以及如何定義包含加密文件內容的資源的詳細信息,但這應該是可行的。

+0

謝謝。對細節進行投票。 – 2010-01-04 16:22:07

1

隨着更新版本的Ant(自1.6以來我認爲)任務不需要包含在目標中。如果您始終希望執行某些任務,則不要將其包裝在目標中。

相關問題