3

我有一个需要从 Subversion 签出目录的 Ant 脚本。这可以使用 svnant/svnkit。但是,Subversion 访问是经过身份验证的,我不想将我的用户密码存储在文件中。

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

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

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

4

4 回答 4

4

这个答案的模拟:

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

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

于 2009-12-04T02:49:10.610 回答
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>

不幸的是,这不会用 * * * * * 掩盖密码,我仍然想从凭证缓存中读取......

于 2008-10-29T10:46:28.710 回答
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>
于 2008-10-30T00:37:54.163 回答
1

使用 ant-dialog ( http://sourceforge.net/projects/ant-dialog/ ),它可以显示一个 java awt 窗口,以便您输入属性。它还具有类似于输入字段类型的 *** 密码。

于 2009-08-31T14:49:09.610 回答