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 给出了难以理解的“项目读取错误”的主要内容,如果未能解决你的问题,请参考以下文章
如何映射 Eclipse m2e 插件未涵盖的 Maven 生命周期阶段?