eclipse(kepler):maven插件(m2e,1.4.0):

时间:2014-04-25 00:38:01

标签: eclipse maven m2e

我刚下载并安装了针对Java EE开发人员的#IDE; Eclipse IDE",这是一个包含其他插件的软件包解决方案 - m2e插件。

尝试在Eclipse中重建maven中央存储库的索引时,出现以下错误:

  

"无法更新central | http的索引:   //repo.maven.apache.org/maven2:   [...] /。2 /库/ .cache /[...]/ nexus-maven-repository-index.zip   (Datei oder Verzeichnis nicht gefunden)"

检查该缓存,我找到一个文件" nexus-maven-repository-index.gz",但没有压缩文件。

我是否错过了maven插件的一些配置选项?
如果没有,出了什么问题?
(在central.maven.org/maven2/.index/那里只有一个gz文件。那么m2e为什么要搜索一个zip文件?)

非常感谢您的帮助。

进一步详情:

  1. 平台

    [alqais @ kroete~] $ uname --all
    Linux kroete 3.14.1-1-ARCH#1 SMP PREEMPT Mon Apr 14 21:01:08 CEST 2014 i686 GNU / Linux

  2. Eclipse的版

    www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplersr2
    linux 32位:eclipse-jee-kepler-SR2-linux-gtk.tar.gz

  3. JRE

    www.java.com/en/download/linux_manual.jsp
    linux 32位:jre-7u55-linux-i586.tar.gz

  4. Eclipse日志(控制台)

  5.   

    [alqais @ kroete eclipse] $ ./eclipse -consoleLog
          [...]
          2014-04-25 00:39:42,681 [Worker-1] INFO o.e.m.c.i.i.nexus.NexusIndexManager - 更新存储库的索引:   中心| http://repo.maven.apache.org/maven2
          2014-04-25 00:39:42,889 [Worker-1] INFO c.n.h.c.p.n.NettyAsyncHttpProvider - 应用程序的工作数量   线程是2
          2014-04-25 00:41:48,619 [Worker-1] ERROR o.e.m.c.i.i.nexus.NexusIndexManager - 无法更新索引   中心| http://repo.maven.apache.org/maven2:   /home/alqais/.m2/repository/.cache/m2e/1.4.0/26522e0d83a422eed93329ece7565cfc/nexus-maven-repository-index.zip   (Datei oder Verzeichnis nicht gefunden)
          java.io.FileNotFoundException:/home/alqais/.m2/repository/.cache/m2e/1.4.0/26522e0d83a422eed93329ece7565cfc/nexus-maven-repository-index.zip   (Datei oder Verzeichnis nicht gefunden)
            at java.io.FileInputStream.open(Native Method)〜[na:1.7.0_55]
            在java.io.FileInputStream。(未知来源)〜[na:1.7.0_55]
            在org.apache.maven.index.updater.DefaultIndexUpdater $ FileFetcher.retrieve(DefaultIndexUpdater.java:568)   〜[索引核-3.1.0.jar:3.1.0]
            在org.apache.maven.index.updater.DefaultIndexUpdater.loadIndexDirectory(DefaultIndexUpdater.java:206)   〜[索引核-3.1.0.jar:3.1.0]
            在org.apache.maven.index.updater.DefaultIndexUpdater.access $ 300(DefaultIndexUpdater.java:75)   〜[索引核-3.1.0.jar:3.1.0]
            at org.apache.maven.index.updater.DefaultIndexUpdater $ LuceneIndexAdaptor.setIndexFile(DefaultIndexUpdater.java:645)   〜[索引核-3.1.0.jar:3.1.0]
            at org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:844)   〜[索引核-3.1.0.jar:3.1.0]
            在org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:156)   〜[索引核-3.1.0.jar:3.1.0]
            在org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateRemoteIndex(NexusIndexManager.java:1139)   [org.eclipse.m2e.core_1.4.0.20130601-0317.jar:NA]
            在org.eclipse.m2e.core.internal.index.nexus.NexusIndexManager.updateIndex(NexusIndexManager.java:1086)   [org.eclipse.m2e.core_1.4.0.20130601-0317.jar:NA]
            在org.eclipse.m2e.core.internal.index.nexus.NexusIndex.updateIndex(NexusIndex.java:145)   [org.eclipse.m2e.core_1.4.0.20130601-0317.jar:NA]
            在org.eclipse.m2e.core.ui.internal.views.MavenRepositoryView $ 8 $ 1.run(MavenRepositoryView.java:391)   [org.eclipse.m2e.core.ui_1.4.0.20130601-0317.jar:NA]
            在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)[org.eclipse.core.jobs_3.5.300.v20130429-1813.jar:na]
          !SESSION 2014-04-25 00:36:18.506 -------------------------------------- ---------
          eclipse.buildId = 4.3.2.M20140221-1700
          java.version = 1.7.0_55
          java.vendor = Oracle公司
          BootLoader常量:OS = linux,ARCH = x86,WS = gtk,NL = de_DE
          框架参数:-product org.eclipse.epp.package.jee.product
          命令行参数:-os linux -ws gtk -arch x86 -product org.eclipse.epp.package.jee.product -consoleLog
          !ENTRY org.eclipse.m2e.logback.appender 4 0 2014-04-25 00:41:48.640
          !MESSAGE无法更新中心索引| http://repo.maven.apache.org/maven2:   /home/alqais/.m2/repository/.cache/m2e/1.4.0/26522e0d83a422eed93329ece7565cfc/nexus-maven-repository-index.zip   (Datei oder Verzeichnis nicht gefunden)

    1. Eclipse流程
    2.   

      [alqais @ kroete~] $ ps ax | grep jre
             4337 pts / 1 Sl + 1:40 /home/alqais/programs/jre1.7.0_55/bin/java   -Dosgi.requiredJavaVersion = 1.6 -XX:MaxPermSize = 256m -Xms40m -Xmx512m -jar /home/alqais/programs/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar   -os linux -ws gtk -arch x86 -showsplash /home/alqais/programs/eclipse//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp   -launcher / home / alqais / programs / eclipse / eclipse -name Eclipse --launcher.library /home/alqais/programs/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20140116- 2212 / eclipse_1508.so   -startup /home/alqais/programs/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar   --launcher.appendVmargs -exitdata 4e0008 -product org.eclipse.epp.package.jee.product -consoleLog -vm   /home/alqais/programs/jre1.7.0_55/bin/java-vmargs   -Dosgi.requiredJavaVersion = 1.6 -XX:MaxPermSize = 256m -Xms40m -Xmx512m -jar /home/alqais/programs/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar

      1. 本地maven缓存内容
      2.   

        [alqais @ kroete~] $ ls -alt   .m2目录/库/ .cache / M2E / 1.4.0 / 26522e0d83a422eed93329ece7565cfc /
              insgesamt 116896
              drwxr-xr-x 2 alqais alqais 4096 25. Apr 00:40 min
              drwxr-xr-x 3 alqais alqais 4096 25. Apr 00:40。
              -rw-r - r-- 1 alqais alqais 1131 25. Apr 00:40 nexus-maven-repository-index.properties
              -rw-r - r-- 1 alqais alqais 0 25. Apr 00:40 chunks.lst
              -rw-r - r-- 1 alqais alqais 119684538 25. Apr 00:40 nexus-maven-repository-index.gz
              -rw-r - r-- 1 alqais alqais 0 24. Apr 23:51 .lock
              drwxr-xr-x 3 alqais alqais 4096 24. Apr 23:51 ..

3 个答案:

答案 0 :(得分:0)

为了将潜在的Eclipse问题与Maven问题分开,您可以尝试安装最新版本的Maven并将其设置为Eclipse(Windows> preferences> Maven)。

答案 1 :(得分:0)

在maven-indexer的那个版本中,如果在读取.gz索引时遇到任何问题,它将无声地故障转移到尝试遗留索引.zip,吞下与.gz相关的任何错误消息。这是来自maven-indexer的相关代码:

try
{
    Date timestamp = target.setIndexFile( source, IndexingContext.INDEX_FILE + ".gz" );
    if ( source instanceof LocalIndexCacheFetcher )
    {
        // local cache has inverse organization compared to remote indexes,
        // i.e. initial index file and delta chunks to apply on top of it
        for ( String filename : ( (LocalIndexCacheFetcher) source ).getChunks() )
        {
            target.addIndexChunk( source, filename );
        }
    }
    return timestamp;
}
catch ( IOException ex )
{
    // try to look for legacy index transfer format
    return target.setIndexFile( source, IndexingContext.INDEX_FILE + ".zip" );
}

我尝试删除(或重命名)nexus-maven-repository-index.gz并尝试在Eclipse的Maven设置中重新编制索引,这有望说服Eclipse重新创建一个好的index.gz文件。

答案 2 :(得分:0)

查看p2 repo镜像条目的settings.xml。

当eclipse尝试从settings.xml中定义的repo下载.gz时会发生这种情况,并且它会失败,因此它会将.gz文件的html 404响应写入磁盘并且卡住了。

我发现只有一个解决方案

WORKAROUND: - 转到“maven存储库”视图并禁用所有p2存储库的索引 - 重启Eclipse

不幸的是,使用新的工作区启动Eclipse会破坏.m2 / .cache目录,因此您必须从上面重做解决方法。

如果您已找到解决方案,请更新解决方案。