2012-03-13 134 views
2

嗨我有问题连接我的jenkins SVN与https协议。我可以通过http协议访问其他SVN仓库,但不能通过https访问。出于某种原因,我的svn回购必须使用https;Jenkins SVN使用https协议

我似乎无法找到jenkins如何从存储库检出/更新的解决方案。 错误是这样的

at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:291) 
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:276) 
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:264) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1001) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:178) 

有什么建议吗?

+1

服务于SVN存储库的HTTP服务器是否使用自签名证书或某些自定义提供的证书?它可能不在全局证书文件中。 – 2012-03-13 10:04:53

+2

是否有登录到驱动Jenkins的服务器的选项,并尝试'svn log <你的仓库的HTTPS-URL>'?因此,您将被要求接受证书(如果这是错误),那么Jenkins可能会相应地使用SVN。 – mliebelt 2012-03-13 11:28:54

+0

确保您的存储库未使用Kerberos进行身份验证。如果是,[看到这个](https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin+HTTPS+Kerberos+authentication)。 – 2012-03-13 13:27:37

回答

3

我有一个类似的问题,因为@milebelt上面写道,尝试从机器内部连接到SVN服务器与一个SVN客户端运行(用相同的用户詹金斯运行)(你必须安装一个if它没有安装,虽然许多发行版带有一个预安装)

这将创建一个证书和~/.svn(defauly文件夹)下的密钥,如果我没有记错的话。

后来,当您从Jenkins运行构建时,它将使用之前创建的svn客户端的密钥进行身份验证。