由于声纳切换到使用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 svn@svn.acme.com
成功。
我在Eclipse中使用SVNKit和这个存储库它也工作正常(虽然我不得不告诉它在哪里寻找私钥)。
当我试图调试声纳转轮执行时,我发现私钥没有设置:
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
网址,用户名和密码均正确无误,但正如您所见,myPrivateKeyFile
为null
。
我已尝试按SVNKit documentation设置MAVEN_OPTS='-Dsvnkit.ssh2.key=/home/acme/.ssh/id_rsa'
的私钥路径,但它没有效果。
如果在https
检出的另一份工作副本上运行此分析,则分析工作正常,进一步确认ssh身份验证存在问题。
答案 0 :(得分:3)
这确实是一个缺失的功能。我创建了以下票证:https://jira.sonarsource.com/browse/SONARSCSVN-9
你介意测试这个插件的更新版本: https://github.com/SonarSource/sonar-scm-svn/releases/download/1.3-rc1/sonar-scm-svn-plugin-1.3-SNAPSHOT.jar
您应该能够传递其他参数(或在UI中设置它们):
-Dsonar.svn.privateKeyPath=<path to private key>
-Dsonar.svn.passphrase.secure=<optional passphrase>
直接在拉取请求中报告任何成功/问题,以免污染SO: https://github.com/SonarSource/sonar-scm-svn/pull/4