如何让svnant/svnkit提示输入用户名/密码

问题描述:

我有一个需要从Subversion签出目录的Ant脚本。这可以使用svnant/svnkit。但是,Subversion访问已通过身份验证,并且我不希望将我的用户密码存储在文件中。如何让svnant/svnkit提示输入用户名/密码

我可以让svnkit弹出一个密码对话框吗? 甚至更​​好,让它使用与Eclipse中使用的subversive/svnkit相同的凭证缓存(用户名可以从build.properties中读取)?

我无法切换到基于公钥的身份验证,因为我不控制Subversion服务器。

现在,它只是说“svn:身份验证取消”。

要回答我自己的问题,我可以使用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> 

不幸的是,这不符合* * * * *屏蔽密码,我还是想从印鉴缓存读取...

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> 

使用Ant-对话框(http://sourceforge.net/projects/ant-dialog/),它可以显示一个Java AWT窗口,以便您可以输入特性。它还具有类似输入字段类型的***密码。

this answer

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

这将让这个不显示人的用户名。这需要Ant 1.7.1或更高版本。