Как заставить svnant / svnkit запросить имя пользователя / пароль? - PullRequest
3 голосов
/ 29 октября 2008

У меня есть скрипт Ant, который должен извлекать каталог из Subversion. Это работает с использованием svnant / svnkit. Однако доступ к Subversion аутентифицирован, и я не хочу хранить свой пароль пользователя в файле.

Могу ли я сделать svnkit всплывающим диалогом с паролем? Или, что еще лучше, заставить его использовать то же кэширование учетных данных, которое использует subversive / svnkit в Eclipse (имя пользователя можно прочитать из build.properties)?

Я не могу переключиться на аутентификацию на основе открытого ключа, так как не контролирую сервер Subversion.

Прямо сейчас, он просто говорит "svn: аутентификация отменена".

Ответы [ 4 ]

4 голосов
/ 04 декабря 2009

Аналог этого ответа :

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

Это сделает так, чтобы имя пользователя не отображалось. Для этого требуется Ant 1.7.1 или выше.

3 голосов
/ 29 октября 2008

Чтобы ответить на мой собственный вопрос, я могу использовать задачу 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 голосов
/ 30 октября 2008

Задачи Jera Ant предоставляют задачу [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>
1 голос
/ 31 августа 2009

Используйте ant-dialog (http://sourceforge.net/projects/ant-dialog/),. Он может отображать окно java awt, чтобы вы могли вводить свойства. Он также имеет *** пароль, такой как тип поля ввода.

...