让我从我看到的错误开始,然后我将解释以下情况:
<p style="color:red">
EclipseJDTUtil.java:[3,34] cannot access org.eclipse.core.resources.IProject
bad class file: C:\Users\ram\.m2\repository\org\eclipse\platform\org.eclipse.core.resources\3.15.0\org.eclipse.core.resources-3.15.0.jar(org/eclipse/core/resources/IProject.class)
class file has wrong version 55.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
</p>
我的项目依赖于***org.eclipse.jdt.core***库。
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.23.0</version>
</dependency>
我用JRE 8构建了我的项目。我用Maven插件在编译时指向正确的版本,如下所示。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
这几天一切都很好,但突然从过去的几天,我看到下面的错误。我知道这个库现在可以使用在java 11上编译的源代码,这给我的项目带来了问题。但是,这怎么可能呢?当项目源代码是java 8时,不应该下载java 11的依赖项。
我不是在一个位置更新我的整个项目到新的java版本!
我需要的是在java8上编译的eclipse库。我应该如何在maven build上得到它们?什么配置才能让它成为可能?
编辑1:(对Andreas评论的回应):
@Andreas:太棒了,正如你正确指出的,它正在拉org.eclipse.core.resources:3.15.0,如错误所示.如您所建议,我已经添加了版本为“资源”如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.core.resources</artifactId>
<version>3.12.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
在我maven构建后,我现在看到下面的错误。
<p style="color:red">
EclipseJDTUtil.java:[8,32] cannot access org.eclipse.core.runtime.IPath
bad class file: C:\Users\ram\.m2\repository\org\eclipse\platform\org.eclipse.equinox.common\3.15.0\org.eclipse.equinox.common-3.15.0.jar(org/eclipse/core/runtime/IPath.class)
class file has wrong version 55.0, should be 52.0
</p>
我还附上了依赖关系层次结构屏幕截图。
第一次
2条答案
按热度按时间58wvjzkj1#
根据@KC_911723和@grubi的答案,您可以使用以下配置:
或使用以下Gradle配置:
gudnpqoy2#
我刚刚遇到了一个非常类似的问题。设法让它重新工作,从降级
(直到几周前,它在java8下运行良好):
这看起来仍然可以很好地与java8一起工作,至少对于我在项目中使用的AST功能来说是这样。