2008-10-29 110 views
3

我有一個需要從Subversion簽出目錄的Ant腳本。這可以使用svnant/svnkit。但是,Subversion訪問已通過身份驗證,並且我不希望將我的用戶密碼存儲在文件中。如何讓svnant/svnkit提示輸入用戶名/密碼

我可以讓svnkit彈出一個密碼對話框嗎? 甚至更​​好,讓它使用與Eclipse中使用的subversive/svnkit相同的憑證緩存(用戶名可以從build.properties中讀取)?

我無法切換到基於公鑰的身份驗證,因爲我不控制Subversion服務器。

現在,它只是說「svn:身份驗證取消」。

回答

3

要回答我自己的問題,我可以使用Ant [輸入]任務來詢問用戶密碼並將其存儲在可傳遞給[svn]任務的屬性中。

<target name="checkout"> 
    <input 
     message="Please enter subversion password for ${username}:" 
     addproperty="password" 
     /> 

    <svn svnkit="${svnkit}" username="${username}" password="${password}"> 
     <checkout url="${urlRepos}/project" destPath="web/" /> 
    </svn> 
</target> 

不幸的是,這不符合* * * * *屏蔽密碼,我還是想從印鑑緩存讀取...

2

Jera Ant Tasks提供[查詢]的任務,支持密碼輸入:

<taskdef name="query" classname="com.jera.anttasks.Query" /> 
<target name="checkout"> 
    <query 
    message="Please enter subversion password for ${username}:" 
    name="password" password="true" 
    /> 

    <svn svnkit="${svnkit}" username="${username}" password="${password}"> 
    <checkout url="${urlRepos}/project" destPath="web/" /> 
    </svn> 
</target> 
4

this answer

<input message="password:>" addproperty="password"> 
     <handler classname="org.apache.tools.ant.input.SecureInputHandler" /> 
</input> 

這將讓這個不顯示人的用戶名。這需要Ant 1.7.1或更高版本。

相關問題