svn - Jenkins Subversion 错误 - E200015 : No credential to try. 身份验证失败

标签 svn jenkins hudson credentials

我已经将jenkins的Subversion插件更新到了2.2版本

现在,对于升级后第一次构建的存储库以及外部内部某些内容发生更改的存储库,我收到以下错误。它适用于预期的所有其他版本。

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

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

错误:

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

最佳答案

在对官方 bug 进行了多次评论后确定 report我们能够解决这个问题。

因此,要使其正常工作,您必须更新到 subversion 插件的最新 2.3-snaptshot, 可以在这里找到:

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

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

  1. 之后您必须修复您的构建。我写了一个关于如何执行此操作的小教程 here .
  2. 打开构建配置
  3. 向下滚动到源代码管理部分
  4. 点击“添加其他凭据...”按钮
  5. 将 svn 服务器的特定标识符定义为领域 --> ( <prot://ip:port > Company Subversion Repository )
    • 如果它适用于不同的 svn,您需要使用此服务器的领域
    • 通过命令行在该服务器上 checkout 存储库 --> svn --username {username} --password {password} checkout prot://ip:port/svn/repo <-- 开始结账后您可以取消
    • 使用此 cmd 读取 Mac 上可用的所有领域 --> find ~/.subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
      • 还有另一个获取领域字符串的选项。在之前没有连接过svn的电脑上,在Therminal中执行以下操作: "svn info prot://ip:port/pathtorepo"--> 这将输出类似“身份验证领域:Company Subversion Repository”的内容
  6. 选择凭据 --> buildmaster/****** (<prot://ip:port> Company Subversion Repository)

注意:如果您使用svn+ssh,您的领域将类似于“svn+ssh://server-name”,不带双引号。不需要尖括号、端口或领域名称。

  • 节省并快乐!
  • 关于svn - Jenkins Subversion 错误 - E200015 : No credential to try. 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068297/

    相关文章:

    rest - 如何使用 Jenkins REST API 发布更新的 config.xml?

    mysql - 与mysql的持续集成

    svn - Nuking svn 存储库中的大文件

    macos - 如何在 Mac 上停止和启动 Jenkins

    svn - 为 svn 存储库创建别名

    testing - 唤醒 : How to set output directory

    git - 将 Jenkins 与 Pipeline 脚本的本地 Git 存储库连接的文件路径结构是什么?

    user-interface - Jenkins UI 自定义

    svn - 将未版本控制的文件添加到 subversion

    git - svn2git 忽略 "--username"-参数