我有一个需要从Subversion签出目录的Ant脚本。这适用于使用svnant / svnkit。但是,Subversion访问权限已经过身份验证,我不想将用户密码存储在文件中。
我可以让svnkit弹出密码对话框吗? 或者甚至更好,让它使用与Eclipse内部的subversive / svnkit相同的凭证缓存(可以从build.properties中读取用户名)?
我无法切换到基于公钥的身份验证,因为我无法控制subversion服务器。
现在,它只是说“svn:authentication cancelled”。
答案 0 :(得分:4)
类似于this answer:
<input message="password:>" addproperty="password">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
这将使得不会显示此人的用户名。这需要Ant 1.7.1或更高版本。
答案 1 :(得分:3)
要回答我自己的问题,我可以使用Ant [input]任务向用户询问密码并将其存储在可以传递给[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 :(得分:2)
Jera Ant Tasks提供支持密码输入的[query]任务:
<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>
答案 3 :(得分:1)
使用ant-dialog(http://sourceforge.net/projects/ant-dialog/),它可以显示一个java awt窗口,以便您可以输入属性。它还具有输入字段类型的***密码。