本文可以当小说看,悬疑小说。
过年后开始上班,大概是2.22开始上班,到昨天2.25发现问题,
myeclipse的egit不能clone和pull github上的项目了。
报错信息cannot open git-upload-pack,
2.25的时候公司网络打开github有点慢,
以为是公司网络问题,就没关注,
今天2.26试了一下,还是不行,就头大了。
这个问题以前也遇到过,百度一下,结果一大堆,
都是告你在myeclipse-window-preferences-team-git-configuration中
add entry,设置key为http.sslVerify,值为false,apply,ok,
如果你认为这样就对了,那就很傻很天真。
首先想到的还是上面说的sslVerify的问题,
仔细校对了一下,没有拼写错误,
然后有想到是不是repo settings的问题,
也就是项目的git config没有被系统覆盖,
修改repo settings,也添加了sslVerify false,
还是不行。
接着想到是不是egit的问题,
看了一下环境配置,
jdk1.6,myeclipse10.6,egit2.3.1,
好像是有点旧,
查到egit最新版本是4.10,
百度了下没有直接能安装的jar,dropins的方式,
所以只能通过myeclipse自带的难用的eclipse marketplace安装,
难用在访问很慢,不管有没有都是很慢,坑爹,
等待了好半天说是文件缺失,缺失你妹啊~
后来又百度到myeclipse10.6对应的eclipse支持的egit就是2.3.1,
行,白忙活了,抓狂。
2.25发现不能用的时候,有尝试公司的gitlab项目,还有国内的gitosc项目,
这些项目都正常,就是github上的不正常,当时没注意。
上面尝试过一遍后发现,不对,要冷静,
就冷静的想了下,发现只是github项目不行,myeclipse和egit都正常,
这个时候就要去找github的问题了。
查看了报错信息,之前只是看到cannot open git-upload-pack就没往下了,
这次看了下详细信息,如下,发现具体错误是javax.net.ssl.SSLException: Received fatal alert: protocol_version,
虽然英语不是很好,但大概能理解到是ssl协议的版本不对。
找到问题了,开始解决问题。
然后开始google各种查,
egit protocol version
myeclipse protocol version
eclipse protocol version
等等,
没有找到直接的答案,但是发现在java编码中也会有protocol version这个问题,
答案是jdk1.6不支持tls1.2,不过可以通过编码引入其他库的方式弥补,
但是,myeclipse egit怎么通过编码的方式弥补,抓狂,
然后开始查jdk1.6 tls1.2,jdk1.7 tls1.2等
发现只有jdk1.8是支持tls1.2的,其他不支持
由于本地是jdk1.7,myeclipse编译还是使用的1.6,
所以需要下载一个jdk1.8,然后开始下载,修改path等,
最后把myeclipse的jre修改为1.8的,
在看了下报错信息,发现答应的还是jdk1.6,
原来修改myeclipse的jre为1.8,只是修改了myeclipse中java项目的编译环境,
不是myeclipse自己启动用的jre,
然后各种查,怎么替换myeclipse自己的jdk,
给出的答案都是编译jre的替换方法,抓狂,只能自己搞。
在myeclipse文件夹下发现一个jdk,C:\_programfiles\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013,
这个是1.6的 ,是不是用的这个呢,
关闭myeclipse,修改文件夹为0131,然后再启动myeclipse,
bingo,报错了,并且很明显的指向,myeclipse就是用的这个jdk中的javaw启动的,
那么怎么修改呢,找吧,在myeclipse文件夹下找了一圈,
发现C:\_programfiles\MyEclipse\MyEclipse 10\myeclipse.ini中有该jdk地址,
修改把,指向到本地的jdk1.8,
然而,还是太年轻,依旧报错
这次都不给直接提示了,让你去看日志,
看完日志发现,找不到该id,
继续找吧,找到C:\_programfiles\MyEclipse\Common\artifacts.xml中的jdk,发现不好改,放弃。
换个思路,把myeclipse的jdk1.6文件夹的所有文件替换为本地jdk1.8中的文件,最终证明还是不行。。。
1.不是egit或者eclipse,myeclipse的问题
2.不是sslVerify的问题
3.myeclipse自带的jdk1.6不支持tls1.2,且暂时没办法替换
之前一直是搜索egit+protocol,现在发现是github的问题,
那就搜索一下github+protocol
如上,果然搜索到了,http://blog.csdn.net/virusnono/article/details/79361870
原来是github搞的鬼,晕死,
文中说是2.1发公告,去看了一下,应该是2.8号之后生效,
地址:https://githubengineering.com/crypto-removal-notice/
关键点
1.2.8日后禁止了tls1.1
2.造成的影响,很多东西不能用了
git windows版本低于1.14.0的,
java版本低于jdk8的,
visual studio等等
1.是github不支持tls1.1导致
2.就myeclipse+egit来说,只能升级为myeclipse2017,自带的是jdk8的版本
3.或者替换为ssh的方式?
所以说,程序员的时间都去哪了~
http://uikoo9.com/更多精彩内容
求打赏(长按图片即可识别)~ |
捐助列表:http://uikoo9.com/donate/ |