2013-04-25 71 views
0

我正在使用ant將應用程序部署到需要管理員用戶/密碼進行登錄的Glassfish應用程序服務器。你能解釋一下如何從ant build.xml本身提供密碼而無需人工干預嗎?apache ant:響應提示輸入密碼

(我的理解是硬編碼建議不要密碼,但請忽略它的這個問題)

+0

ant任務應該允許您提供密碼(或密碼文件)作爲屬性。 – 2013-04-25 14:59:11

回答

3

螞蟻<input>任務可以讀取密碼錶單上的用戶,或者如果屬性已經存在跳過它。從它的文檔:

<input 
    message="Please enter db-username:" 
    addproperty="db.user" 
    defaultvalue="Scott-Tiger" 
/> 

如果屬性db.user已經存在,這什麼都不做。如果沒有,它會提示用戶輸入用戶名,併爲其設置db.user屬性。如果用戶只輸入一個回報,它將使用默認值。如果您是從IDE執行此操作,請檢查其文檔以設置正確的輸入處理程序。對於密碼,請使用<handler type="secure"/>作爲內部元素。

現在,您想要將密碼存儲在單獨的文件中。這不是一個好主意,但人們這樣做。因此,使用<property>任務:

<property name="db.password" value="CompletelyInsecure"/> <!-- or --> 
<property file="db.properties"/> <!-- Where db.properties contains the db codes. --> 

您的具體情況,使用這兩種方法。我會使用屬性文件,然後使用<input>任務。

Maven構建系統建議人們對所有密碼數據進行加密,並將解密密鑰存儲在與其保持的記憶棒上,以瞭解其複雜程度。