Eclipse Mars:启动时下载存储库索引更新 - 失败 [英] Eclipse Mars: Download repository index updates on startup - fails
问题描述
我已经试过以下
- 删除缓存目录\eclipse\p2\org.eclipse.equinox.p2.repository\cache
然后刷新存储库。首选项 - >安装更新
- >可用的软件站点=>选择条目并单击重新加载 - 将-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
- 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"
- 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屋!