2017-01-25 3 views
3

Недавно я обновился от SonarQube 5.1.2 до SonarQube 5.6. Теперь я получаю IllegalStateException «Ошибка при выполнении вины для файла». Это происходит с моими скриптами ant как в Eclipse, так и в Jenkins. В Jenkins ошибка более полная, что указывает на SVNAuthenticationException E170001: Не удалось выполнить проверку подлинности на переговорах: «Недействительные учетные данные предоставлены».Ошибка SonarQube при выполнении вины для файла

Действительные учетные данные присутствуют в Администрации SonarQube -> Общие настройки -> SCM -> SVN. Это те же учетные данные, которые я использовал в 5.1.2, а функция вины работала без ошибок и назначала проблемы различным разработчикам. Также мои скрипты сборки заполняют sonar.svn.username и sonar.svn.password.secured с одинаковыми учетными данными.

В 5.1.2 Я использовал сонар-вопрос-назначение-плагин. Я вижу, что это устарело сейчас, и на самом деле SonarQube 5.6 не запускается успешно, если этот плагин присутствует. К сожалению, все, что заняло свое место, не работает для меня.

Я просмотрел ответы на вопросы с той же ошибкой here и here.

Редактировать: Я все еще придерживаюсь этого. Я повторно ввел учетные данные в Администрации SonarQube> Сгенерировать настройки> SCM> SVN и перезапустил сервер. Тот же результат. Вот последняя часть трассировки стека исключений:

Вызванный: org.tmatesoft.svn.core.SVNAuthenticationException: SVN: E170001: Обсуди Ошибка аутентификации: «Нет действительные учетные данные не предоставляются» в org.tmatesoft.svn .core.internal.wc.SVNErrorManager.error (SVNErrorManager.java:62) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error (SVNErrorManager.java:51) at org.tmatesoft.svn.core .internal.io.dav.http.DefaultHTTPNegotiateAuthentication $ 1.run (DefaultHTTPNegotiateAuthentication.java:175) at org.tmatesoft.svn.core.internal.io.dav.http.DefaultHTTPNegotiateAuthentication $ 1.run (DefaultHTTPNegotiateAuthentication.java:166) at org.tmatesoft.svn.core.internal.io.dav.http.Defa ultHTTPNegotiateAuthentication.authenticate (DefaultHTTPNegotiateAuthentication.java:221) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request (HTTPConnection.java:477) at org.tmatesoft.svn.core.internal. io.dav.http.HTTPConnection.request (HTTPConnection.java:398) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request (HTTPConnection.java:386) at org.tmatesoft. svn.core.internal.io.dav.DAVConnection.performHttpRequest (DAVConnection.java:863) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities (DAVConnection.java:699) at org. tmatesoft.svn.core.internal.io.dav.DAVConnection.open (DAVConnection.java:118) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection (DAVRepository.java:1049) на org.tmatesoft.svn.core.internal.io.dav.DAVRepository.hasCapability (DAVRepository.java:877) на org.tmatesoft.svn.core.io.SVNRepository.assertServerIsMergeInfoCapable (SVNRepository.java:787) на org.tmatesoft.svn.core.io.SVNRepository.getFileRevisions (SVNRepository.java:756) at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run (SvnRemoteAnnotate.java:111) at org. tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run (SvnRemoteAnnotate.java:35) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run (SvnOperationRunner.java:21) at org. tmatesoft.svn.core.wc2.SvnOperationFactory.run (SvnOperationFactory.java:1235) at org.tmatesoft.svn.core.wc2.SvnOperation.run (SvnOperation.java:294) на org.tmatesoft.svn.core.wc.SVNLogClient.doAnnotate (SVNLogClient.Java: 295) в org.sonar.plugins.scm.svn.SvnBlameCommand.blame (SvnBlameCommand.java:100) ... 64 более

Edit 2: Я запускаю это как Ant Задача с помощью sonarqube-ant-task-2.5.jar, и я запустил ее как отдельный шаг сборки в Jenkins, используя плагин SonarQube (версия 2.4.4) с тем же результатом. Я все еще в недоумении, почему он не находит мои учетные данные SVN при попытке назначить вину.

+0

См. Также: https://stackoverflow.com/q/28740785/59087 –

ответ

3

Я собираюсь ответить на свой вопрос, поскольку нашел решение, которое работает. Похоже, что проблема связана с SVNKit, где мой SVN-сервер использует проверку подлинности NTLM или Negotiate, а код tmatesoft svn, вызываемый плагином SonarQube, не поддерживает это в моей среде.

Добавление следующих строк в параметрах виртуальной машины Java решает проблему:

-Dsvnkit.http.methods=Basic,Digest,Negotiate,NTLM 

Solution found here.

Это работает для вызова Sonar от Ant, добавив его параметры виртуальной машины Java при вызове скрипта Ant, и он также работает для задачи сборки Jenkins. Выполнить сканирование SonarQube при добавлении в JVM Options.

Смежные вопросы