有一段时间我不明白为什么我的 Maven 项目没有在 Eclipse 中构建,并出现“ .class 文件中的错误版本号”错误。
- 我检查了所有依赖项并确保它们是为 Java 6 或更低版本构建的(使用这个方便的 JAR 版本检查工具)。
- 我打开我的项目属性并确认我有项目特定的编译器设置,设置为合规级别 1.6。
- 我还确认我的构建路径上有 Java 6 库。
最后,我发现原因与为我的工作区选择的默认 JRE 有关。由于某种原因,它被设置为 jdk1.5。将其设置为高于此的值(我选择了 jdk1.8)解决了这个问题。最后,我必须选择 jdk1.7 才能让我的 AspectJ 编织正常工作。
我的问题是:为什么这解决了它?根据首选项页面,此设置仅影响将哪个 JRE 添加到新创建的 Java 项目的构建路径中。我无法理解为什么这会影响我构建项目的能力。有什么建议么?似乎 Eclipse 使用默认的 JRE 选择来影响使用的编译器类型。
我正在使用 m2e 来绑定 Eclipse 和 Maven。我的 POM 构建部分如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<!-- http://maven.apache.org/plugins/maven-compiler-plugin/ -->
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<complianceLevel>1.6</complianceLevel>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>