Поскольку сонар перешел на использование SVNKit, я не могу заставить работать анализ вины для рабочих копий, используя svn+ssh
. Это не удается с:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project example: Error when executing blame for file src/main/java/com/acme/Foo.java: svn: E170001: Authentication required for 'svn@svn+ssh://svn.acme.com'
Команда svn
работает корректно при вызове из командной строки, также успешно подключается к ssh [email protected]
. Я использую SVNKit в Eclipse с этим репозиторием, и он также отлично работает (хотя мне пришлось указать, где искать закрытый ключ).
Когда я пытаюсь отладить выполнение сонара, я вижу, что закрытый ключ просто не установлен:
myPreviousAuthentication SVNSSHAuthentication (id=392)
myAgentProxy null
myIsPartial false
myIsStorageAllowed false
myKind "svn.ssh" (id=387)
myPassphrase null
myPassword (id=608)
myPortNumber -1
myPrivateKeyFile null
myPrivateKeyValue null
myURL SVNURL (id=345)
myUserName "jbochenski" (id=610)
myPreviousErrorMessage SVNErrorMessage (id=388)
dontShowErrorCode false
myChildErrorMessage null
myErrorCode SVNErrorCode (id=614)
myMessage "Credentials rejected by SSH server." (id=613)
myObjects Object[0] (id=616)
myThrowable null
myType 0
URL, имя пользователя и пароль верны, но, как видите, myPrivateKeyFile
это null
.
Я попытался установить путь к закрытому ключу с помощью MAVEN_OPTS='-Dsvnkit.ssh2.key=/home/acme/.ssh/id_rsa'
в соответствии с документацией SVNKit. , но это не имеет никакого эффекта.
Если запустить это на другой рабочей копии, извлеченной через https
, анализ работает нормально, что еще раз подтверждает, что это проблема с аутентификацией ssh.