Eclipse Mars:启动时下载存储库索引更新 - 失败 [英] Eclipse Mars: Download repository index updates on startup - fails

查看:1608
本文介绍了Eclipse Mars:启动时下载存储库索引更新 - 失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Eclipse Mars m2e插件无法在启动时下载存储库索引更新。我在公司防火墙后面运行eclipse,但代理设置正在为检查更新,eclipse市场,eclipse内置浏览器,... ...



我已经试过以下


  1. 删除缓存目录\eclipse\p2\org.eclipse.equinox.p2.repository\cache
    然后刷新存储库。首选项 - >安装更新
    - >可用的软件站点=>选择条目并单击重新加载

  2. 将-Djava.net.preferIPv4Stack = true添加到-vmargs在eclipse.ini中

编辑:代理配置在$ HOME / .m2 / settings中正确设置。 xml

编辑:似乎是一个错误。所以我用eclipse.org提出了一个bug请求。您可以查看它 here



请帮我解决这个问题。由于此问题,eclipse无法从maven存储库中搜索并添加依赖关系。



以下是.metadata / .log中的错误

  eclipse .buildId = 4.5.0.I20150603-2000 
java.version = 1.8.0_60
java.vendor = Oracle Corporation
BootLoader常量:OS = win32,ARCH = x86_64,WS = win32, NL = en_IN
框架参数:-product org.eclipse.epp.package.jee.product
命令行参数:-os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package .jee.product

!ENTRY org.eclipse.m2e.logback.appender 4 0 2015-09-30 14:39:59.820
!MESSAGE无法更新中心索引| https: //repo.maven.apache.org/maven2
!STACK 0
java.net.ConnectException:Connection timed out:connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
在java.net.AbstractPlainSocketImpl.con nect(AbstractPlainSocketImpl.java:188)
在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
在java.net.Socket.connect(Socket.java:589)
在com.squareup.okhttp.internal.Platform.connectSocket(Platform.java:107)
在com.squareup.okhttp.Connection .connect(Connection.java:156)
at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:175)
at com.squareup.okhttp.OkHttpClient $ 1.connectAndSetOwner(OkHttpClient.java: 120)
at com.squareup.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:330)
at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java: 319)
at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
at com.squareup.okhttp.Call.getResponse(Call.java:271)
at com.squareup.okhttp.Call $ ApplicationIntercepto rChain.proceed(Call.java:228)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:199)
at com.squareup.okhttp.Call.execute(Call.java: 79)
在io.takari.aether.okhttp.OkHttpAetherClient.execute(OkHttpAetherClient.java:154)
在io.takari.aether.okhttp.OkHttpAetherClient.get(OkHttpAetherClient.java:100)
在org.eclipse.m2e.core.internal.index.nexus.AetherClientResourceFetcher.retrieve(AetherClientResourceFetcher.java:79)
在org.apache.maven.index.updater.AbstractResourceFetcher.retrieve(AbstractResourceFetcher.java: 35)
在org.apache.maven.index.updater.DefaultIndexUpdater.downloadIndexProperties(DefaultIndexUpdater.java:452)
在org.apache.maven.index.updater.DefaultIndexUpdater.access $ 100(DefaultIndexUpdater.java :75)
在org.apache.maven.index.updater.DefaultIndexUpdater $ IndexAdaptor.setProperties(DefaultIndexUpdater.java:607)
在org.apache.maven.i ndex.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:788)
在org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:135)
在org.eclipse.m2e。 core.internal.index.nexus.NexusIndexManager.updateRemoteIndex(NexusIndexManager.java:1127)
在org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateIndex(NexusIndexManager.java:1084)
在org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager $ 1.run(NexusIndexManager.java:656)
在org.eclipse.m2e.core.internal.index.nexus.IndexUpdaterJob.run( IndexUpdaterJob.java:72)
在org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)


解决方案

我找到了解决方案。这很简单经过一些代码调查后,我发现了以下事情:
https://github.com/eclipse/m2e-core/blob/releases/1.6/ 1.6.2.20150902-0002 / org.eclipse.m2e.core / src / org / eclipse / m2e / core / internal / embedder / MavenImpl.java#L1226



所以m2e扫描代理列表,并尝试通过协议找到正确的。如果您看中央网址: https://repo.maven.apache.org/maven2 。这是从https开始。



您的代理设置应该是这样的(http和第二个https的代理):

 <代理> 
<代理>
< active> true< / active>
< protocol> http< / protocol>
< host> myproxy.company.com< / host>
< port> 8080< / port>
< / proxy>
<代理>
< active> true< / active>
< protocol> https< / protocol>
< host> myproxy.company.com< / host>
< port> 8080< / port>
< / proxy>
< /代理>


Eclipse Mars m2e plugin fails to download repository index updates on startup. I run eclipse behind company firewall but proxy setting are working for "check for updates", "eclipse marketplace", eclipse inbuilt browser,....

I hv already tried the following

  1. Deleting the cache directory "\eclipse\p2\org.eclipse.equinox.p2.repository\cache" and then refreshing the repositories. Preferences -> Install Update -> Available Software Sites => select the entry and click the "Reload"
  2. Adding "-Djava.net.preferIPv4Stack=true" to -vmargs in eclipse.ini

Edit: Proxy configurations are correctly set in $HOME/.m2/settings.xml
Edit: Seems like a bug. So I raised a bug request with eclipse.org. You can view it here

Pleasehelp me resolve this. Due to this issue, eclipse fails to search and add dependency from maven repositories.

Here is the error in .metadata/.log

eclipse.buildId=4.5.0.I20150603-2000
java.version=1.8.0_60
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_IN
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.m2e.logback.appender 4 0 2015-09-30 14:39:59.820
!MESSAGE Unable to update index for central|https://repo.maven.apache.org/maven2
!STACK 0
java.net.ConnectException: Connection timed out: connect
        at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at com.squareup.okhttp.internal.Platform.connectSocket(Platform.java:107)
        at com.squareup.okhttp.Connection.connect(Connection.java:156)
        at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:175)
        at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120)
        at com.squareup.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:330)
        at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:319)
        at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
        at com.squareup.okhttp.Call.getResponse(Call.java:271)
        at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:228)
        at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:199)
        at com.squareup.okhttp.Call.execute(Call.java:79)
        at io.takari.aether.okhttp.OkHttpAetherClient.execute(OkHttpAetherClient.java:154)
        at io.takari.aether.okhttp.OkHttpAetherClient.get(OkHttpAetherClient.java:100)
        at org.eclipse.m2e.core.internal.index.nexus.AetherClientResourceFetcher.retrieve(AetherClientResourceFetcher.java:79)
        at org.apache.maven.index.updater.AbstractResourceFetcher.retrieve(AbstractResourceFetcher.java:35)
        at org.apache.maven.index.updater.DefaultIndexUpdater.downloadIndexProperties(DefaultIndexUpdater.java:452)
        at org.apache.maven.index.updater.DefaultIndexUpdater.access$100(DefaultIndexUpdater.java:75)
        at org.apache.maven.index.updater.DefaultIndexUpdater$IndexAdaptor.setProperties(DefaultIndexUpdater.java:607)
        at org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:788)
        at org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:135)
        at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateRemoteIndex(NexusIndexManager.java:1127)
        at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateIndex(NexusIndexManager.java:1084)
        at org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager$1.run(NexusIndexManager.java:656)
        at org.eclipse.m2e.core.internal.index.nexus.IndexUpdaterJob.run(IndexUpdaterJob.java:72)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

解决方案

I've found solution. It's quite simple. After some code investigation I've found following thing: https://github.com/eclipse/m2e-core/blob/releases/1.6/1.6.2.20150902-0002/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java#L1226

So m2e scans proxy list and trying to find correct by protocol. If you look at central url: https://repo.maven.apache.org/maven2. It's starts from "https".

Your proxy settings should looks like that (one proxy for http and second for https):

<proxies>
  <proxy>
    <active>true</active>
    <protocol>http</protocol>
    <host>myproxy.company.com</host>
    <port>8080</port>
  </proxy>
    <proxy>
      <active>true</active>
      <protocol>https</protocol>
      <host>myproxy.company.com</host>
      <port>8080</port>
    </proxy>
</proxies>

这篇关于Eclipse Mars:启动时下载存储库索引更新 - 失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆