Jenkins Subversion错误 - E200015:没有凭据可以尝试。验证失败

时间:2014-02-27 12:17:42

标签: svn jenkins hudson credentials

我已将jenkins的Subversion插件更新为2.2版

现在我得到了关于repos的错误,这是在升级之后第一次构建的repos以及repos,其中外部的东西发生了变化。它可以按预期用于所有其他构建。

我尝试添加其他凭据,但这没有帮助。

现在我希望有人知道还有什么可以尝试来解决这个尴尬的问题。

错误:

hudson.util.IOException2: revision check failed on http://XXX/svn/XXX/Website/Config/trunk
    at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:189)
    at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:132)
    at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:738)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:899)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580)
    at hudson.model.Run.execute(Run.java:1670)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /svn/XXX/Website/Config/trunk failed
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:160)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:35)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:967)
    at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:872)
    at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:177)
    ... 11 more
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
    at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:694)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
    ... 29 more

5 个答案:

答案 0 :(得分:22)

在对官方错误report发表许多评论后,我们能够解决这个问题。

为了让它工作,你必须更新到subversion插件的最新2.3-snaptshot, 可以在这里找到:

https://jenkins.ci.cloudbees.com/job/plugins/job/subversion-plugin/

(下载.hpi文件并将其安装在您的jenkins上)

  1. 之后你必须修复你的构建。我已经编写了一个关于如何执行此操作的小教程here
  2. 打开构建配置
  3. 向下滚动到源代码管理部分
  4. 点击"添加其他凭据..."按钮
  5. 将svn服务器的特定标识符定义为领域 - &gt; (<prot://ip:port > Company Subversion Repository
    • 如果它适用于不同的svn,则需要使用此服务器的领域
    • 通过命令行检查此服务器上的仓库 - &gt; svn --username {username} --password {password} checkout prot://ip:port/svn/repo&lt; - 您可以在结帐后取消此操作
    • 使用此cmd阅读Mac上可用的所有领域 - &gt; find ~/.subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
      • 还有另一个获取realmstring的选项。在以前没有连接到svn的电脑上,在热敏电阻中执行以下操作: &#34; svn info prot:// ip:port / pathtorepo&#34; - &GT;这将输出类似&#34;身份验证领域:公司Subversion存储库&#34;
  6. 选择凭据 - &gt; buildmaster/****** (<prot://ip:port> Company Subversion Repository)
  7. 注意:如果您使用 svn + ssh ,您的领域将看起来像&#34; svn + ssh:// server-name&#34;没有双引号。不需要尖括号,端口或域名。

    1. 保存并快乐!

答案 1 :(得分:3)

我有同样的错误。由于svn repo受密码保护。当我添加凭证并将其用于svn签出时,它工作正常。

enter image description here

答案 2 :(得分:1)

我得到了完全相同的异常,这是因为在存储库路径中使用了构建参数,例如:

http://reposerver/svn/project/${SVN_BRANCH}

即使万一$ {SVN_BRANCH}被正确设置为'trunk'它也无法正常工作

当我将存储库路径更改为:

http://reposerver/svn/project/trunk

现在一切正常

将svn插件从1.54升级到2.2后发生此问题,所以看起来新版本的svn jenkins插件中存在一些错误

答案 3 :(得分:1)

我想强调mikepenz' answer:中的一点 在您的工作配置的文本字段 Realm 中(单击添加其他凭据... 之后),您不能只输入您的SVN领域,而是您的领域外部仓库的完整网址。这使我绊倒了。

因此,这部分工作配置最终看起来像这样:

enter image description here

修改

事实证明,上述情况并没有改善这种情况:凭证错误仍然存​​在,而且提交到外部存储库并没有触发Jenkins构建软件。

我遵循了建议here(也提到了上述方法的安全问题),并在Jenkins中使用模块作为我的外部存储库。

这是我的模块配置查找外部仓库的方式:

jenkins external repo as module

答案 4 :(得分:-1)

更新subversion插件时,您应该执行以下操作之一。

  • 清理jenkins工作区,因为metainfo与旧版本的subversion相关

  • 手动更新工作空间,它会提示您更新客户端版本,单击是