m2e 给出了难以理解的“项目读取错误”

Posted

技术标签:

【中文标题】m2e 给出了难以理解的“项目读取错误”【英文标题】:m2e gives inscrutable "project read error" 【发布时间】:2012-06-03 00:28:45 【问题描述】:

我刚开始使用 m2e 尝试构建示例 travellog elastic beanstalk 项目。在控制台上,我收到“[ERROR] Project read error”。

这在“依赖层次结构”选项卡上也显示为红色。

这是什么意思,我该如何了解更多详情?

编辑:添加 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>BeanstalkTest</groupId>
  <artifactId>BeanstalkTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk</artifactId>
            <version>[1.0.007,)</version>
        </dependency>
    </dependencies>

</project>

【问题讨论】:

你能给我们一个链接来访问项目 pom 吗? (或粘贴它,如果可行的话)。我希望您可以从命令行毫无问题地构建,对吧? @LucaGeretti 谢谢,我编辑了问题并添加了 pom.xml,实际上我没有尝试从命令行构建它。将安装 maven(在 Windows 上,呃!)并尝试一下。 【参考方案1】:

好的。所以我想我想通了。

在 workspace\.metadata 中有日志文件,例如.log 我的有这个条目:

!ENTRY org.eclipse.m2e.logback.appender 4 0 2012-05-28 18:50:44.641
!MESSAGE Project read error

你可以进去看看:

工作区\.metadata\.plugins\org.eclipse.m2e.logback.configuration

查找 m2e 的日志文件,例如 0.log

这些非常详细和有用。无论如何,我的日志文件有这个条目:

2012-05-28 18:50:44,640 [Worker-52] ERROR o.e.m.editor.pom.DependencyTreePage - Project read error
org.eclipse.core.runtime.CoreException: Project read error
    at org.eclipse.m2e.core.embedder.MavenModelManager.readDependencyTree(MavenModelManager.java:230) ~[na:na]
    at org.eclipse.m2e.editor.pom.MavenPomEditor.readDependencyTree(MavenPomEditor.java:701) ~[na:na]
    at org.eclipse.m2e.editor.pom.DependencyTreePage$1.run(DependencyTreePage.java:215) ~[na:na]
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) [org.eclipse.core.jobs_3.5.101.v20120113-1953.jar:na]
Caused by: org.sonatype.aether.collection.DependencyCollectionException: Failed to collect dependencies for [com.amazonaws:aws-java-sdk:jar:[1.0.007,) (compile)]
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:262) ~[na:na]
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:345) ~[na:na]
    at org.eclipse.m2e.core.embedder.MavenModelManager.readDependencyTree(MavenModelManager.java:226) ~[na:na]
    ... 3 common frames omitted
Caused by: org.sonatype.aether.resolution.VersionRangeResolutionException: Failed to resolve version range for org.codehaus.jackson:jackson-mapper-asl:jar:[1.8.): Invalid version range [1.8.), single version must be surrounded by []
    at org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange(DefaultVersionRangeResolver.java:114) ~[na:na]
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:378) ~[na:na]
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:533) ~[na:na]
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:243) ~[na:na]
    ... 5 common frames omitted
Caused by: org.sonatype.aether.version.InvalidVersionSpecificationException: Invalid version range [1.8.), single version must be surrounded by []
    at org.sonatype.aether.util.version.GenericVersionRange.<init>(GenericVersionRange.java:84) ~[na:na]
    at org.sonatype.aether.util.version.GenericVersionScheme.parseVersionRange(GenericVersionScheme.java:40) ~[na:na]
    at org.sonatype.aether.util.version.GenericVersionScheme.parseVersionConstraint(GenericVersionScheme.java:66) ~[na:na]
    at org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange(DefaultVersionRangeResolver.java:109) ~[na:na]
    ... 8 common frames omitted

因此,aws-java-sdk 依赖项的定义似乎存在问题。它指定 jackson-mapper-asl 可以是版本 [1.8.),这似乎是无效的语法。

如果我修改 pom.xml 以排除该依赖项,它将变为:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>BeanstalkTest</groupId>
  <artifactId>BeanstalkTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk</artifactId>
            <version>[1.0.007,)</version>
             <exclusions>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-mapper-asl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

</project>

这不会产生“项目读取错误”。所以,基本上有两件事:

    日志文件如上找到,并且 aws-java-sdk 依赖项的定义似乎有问题

谢谢卢卡。

【讨论】:

嗯,它似乎属于“不是你的错”类别。我会尝试一些不同版本的 aws-java-sdk。正如你所看到的here,它们自 1.0.007 以来已经走了很长一段路,所以也许更新的版本仍然与你的项目兼容并修复了依赖问题。另外或替代地,尽量不要使用版本范围。 @LucaGeretti 啊,我应该考虑更新该修订版。但我相信它无论如何都会引入最新版本,因为版本是如何指定的 [1.0.007,)。我会玩它的。再次感谢。

以上是关于m2e 给出了难以理解的“项目读取错误”的主要内容,如果未能解决你的问题,请参考以下文章

M2E模式成为当下热门 哪些项目值得关注?

在 Eclipse m2e 中,如何引用工作空间项目?

如何映射 Eclipse m2e 插件未涵盖的 Maven 生命周期阶段?

在保存文件时,如何让 eclipse m2e 构建当前项目和引用它的 EAR 项目?

M2E:版本与父版本重复 - 为啥这是一个警告?

project read error(项目读取错误)