Использовать svnant без имени пользователя и пароля
Я проверил код с помощью командной строки SVN. У меня есть скрипт сборки Ant, который я хочу запустить, который выполнит коммит, когда он будет сделан.
Я хотел бы использовать svnant, такой как
<svn svnkit="false" javahl="false" failonerror="true">
<commit dir="${dir}" message="${message}"/>
</svn>
но не работает и дает эту ошибку
[svn] <Commit> started ...
[svn] svn: Commit failed (details follow):
[svn] svn: OPTIONS of 'http://svn.local/path/to/my/proj': authorization failed (http://svn.local)
[svn] <Commit> failed !
Однако, если я делаю exec напрямую, как это
<exec executable="svn">
<arg line="commit ${dir} -m '${message}'"/>
</exec>
это будет работать нормально. Что странно, что с помощью svnkit="false"
а также javahl="false"
должен заставить svnant использовать командную строку svn.
Так что здесь происходит? Мне не нужно указывать имя пользователя / пароль в вызове svnant, поскольку svn командной строки явно не нуждается (он был кеширован).
1 ответ
Простое и надежное решение - сохранить желаемое имя пользователя и пароль svn в файле build.properties в вашем домашнем каталоге, установить разрешения, чтобы другие пользователи не могли его прочитать, и загрузить их в свой скрипт ant.
Я полагался на кэширование аутентификации в сценариях сборки, и это раздражает, потому что рано или поздно аутентификация не будет кэширована, или неправильная аутентификация будет кэширована, и вы будете тратить время, пытаясь понять, что не так. Или вы можете решить запустить ant в другой среде, например, на сервере сборки, что затрудняет загрузку кеша аутентификации svn. Лучше загрузить вашу аутентификационную информацию из файла и программного муравья, чтобы дать четкое сообщение, когда этот файл отсутствует.
Вы также можете попробовать использовать клиент командной строки svnkit для кэширования вашей аутентификации и посмотреть, работает ли она при использовании через ant.
В этой теме говорится о тех же проблемах: http://www.nabble.com/svnant-and-authentication-td17865407.html