1

有一段时间我不明白为什么我的 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>
4

0 回答 0