我的NetBeans git设置似乎出了点问题。我在Windows 8.1上使用NetBeans IDE 8.0.1,并且在GitLab.com上托管了一个私人git存储库。但是自从GitLab 更新到版本7.3.1以来,我无法从NetBeans连接到git存储库。无论是否获取,拉入或推入,都将得到相同的响应: _“无法通过https://gitlab.com/ <组名> / < 项目名> .git连接到远程存储库”_(组出于隐私原因,省略了名称和项目名称)
我发现了类似的(较旧的)问题,但我认为这不是同一个问题。我认为我的问题与GitLab社区版7.3.1的发布有关,尽管我看不出是什么原因造成的。
从NetBeans社区的此错误报告中,有人建议单击 “被动模式” 可以解决此问题,但是我不知道在哪里可以找到这种被动模式。在谷歌搜索被动模式下,我认为它与FTP有关,但是我使用https选项而不是ftps选项来连接git存储库,因此我认为这不适用于我的情况(如果我是错误的)。
有关NetBeans社区的另一个错误报告建议,我需要在gitconfig文件中添加以下行:
[http] sslVerify=false
我将其添加到项目文件夹中的 .git / config 文件和用户文件夹中的 .gitconfig 文件,但这并不能解决问题。
另外,再次从GitLab.com克隆git存储库并不能解决问题。实际上,当我尝试克隆时,会得到相同的错误响应(如上所述)。
如果我在Windows上使用GitBash,我仍然可以连接到git并执行所有git命令。因此,我现在将使用它,但我也希望能够在NetBeans中使用Git存储库浏览器。
编辑:
我还在运行具有自动生成和测试功能的Jenkins,它也连接到GitLab.com上的同一git存储库。我有一段时间没有检查其日志,但是也无法获取。因此,该问题不仅限于NetBeans,因为Jenkins也受到影响。
这是詹金斯的构建尝试的输出:
Started by user Pieterjan van Gastel Building in workspace C:\Program Files (x86)\Jenkins\workspace\<project-name> > C:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree Fetching changes from the remote Git repository > C:\Program Files (x86)\Git\bin\git.exe config remote.origin.url https://gitlab.com/<group-name>/<project-name> Fetching upstream changes from https://gitlab.com/<group-name>/<project-name> > C:\Program Files (x86)\Git\bin\git.exe --version FATAL: Failed to fetch from https://gitlab.com/<group-name>/<project-name> hudson.plugins.git.GitException: Failed to fetch from https://gitlab.com/<group-name>/<project-name> at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:622) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:854) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:879) at hudson.model.AbstractProject.checkout(AbstractProject.java:1254) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:624) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:530) at hudson.model.Run.execute(Run.java:1732) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:234) Caused by: hudson.plugins.git.GitException: Received fatal alert: handshake_failure at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.checkCredentials(CliGitAPIImpl.java:2115) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1151) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$200(CliGitAPIImpl.java:87) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:265) at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:620) ... 10 more
同样,出于隐私原因,省略了组名和项目名。
我想让我的单元测试自动执行,所以很高兴知道确切更改了哪些内容以及如何修复它。
现在,此问题也已作为问题发布到NetBeans.org和GitLab邮件列表中。
这个问题很容易解决。
John Gibson(@jgibson)在GitLabCE问题#624上评论说他遇到了类似的错误。他解释说,“他 发现服务器上所有可用密码至少为256位。标准OracleJava附带的加密对于某些算法限制为128位。在 从Oracle安装了无限强度的加密软件包后,问题就消失了。请注意,无限强度软件包仅在美国合法可用。如果您不在美国,那么我认为OpenJDK可以代替。”
我遵循了他提到的链接,下载了 Java密码学扩展(JCE)无限强度管辖权策略文件7, 并按照下载随附的 自述 文件中的步骤进行操作。
我重新启动了NetBeans,问题已解决。
如下面的SO问题所示,这也适用于Eclipse IDE:“ Gitlab无法打开git-upload-packerror”
我尚未尝试使其与Jenkins一起使用,但我认为它也很容易修复。
我差点忘了,我在GitLab邮件列表上的Achilleas Pipis找到了这个答案。