我导入了一个Maven项目,它使用Java 1.5,即使我有1.6配置为我的Eclipse默认首选项->Java->安装的jre。

当我将Maven项目更改为使用1.6 JRE时,它仍然有从项目使用Java 1.5时遗留下来的构建错误(我在前面描述了这些构建错误:我使用m2eclipse构建错误,但在命令行上没有使用maven2—是我的m2eclipse配置错误吗?)

我将删除该项目,然后再试一次,但我想确保这次它从一开始就使用Java 1.6,看看这是否消除了构建问题。

我如何确保项目在导入时使用Java 1.6 ?


当前回答

<project>

    <!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

其他回答

项目特定设置

另一个可能出错的地方是在Eclipse中的项目特定设置中。

项目属性:单击您的项目和以下之一: Alt + Enter 菜单>项目>属性 右键单击项目>项目属性(菜单中的最后一项) 点击“Java编译器” 取消勾选“启用项目特定设置”(或手动更改所有设置)。

由于客户的需求,我们启用了它们,使我们的项目保持在1.6版本。当它需要升级到1.7时,我们遇到了困难,因为我们需要全面更改java版本:

项目的POM Eclipse工作区默认值 项目特定设置 执行虚拟机(一切都使用1.6)

您的JRE可能在运行配置中定义。在Eclipse中按照以下步骤更改构建JRE。

1)右键单击项目,选择“以>运行配置”

2)在Run Configurations窗口中,选择左边面板上的项目构建配置。在右侧,您将看到各种选项卡:Main, JRE, Refresh, Source,…

3)单击JRE选项卡,您应该会看到如下内容

4)默认使用“工作默认JRE”(您在“首选项->Java->已安装JRE”中选择的默认JRE)。如果您想使用其他已安装的JRE,请勾选“备用JRE”复选框,并在下拉框中选择您首选的JRE。

m2eclipse插件不使用Eclipse默认值,m2eclipse插件从POM派生设置。因此,如果你想让Maven项目在Eclipse下导入时使用Java 1.6设置,请适当配置Maven -compiler-plugin,正如我已经建议的那样:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

如果项目已经导入,则更新项目配置(右键单击项目,然后单击Maven V update project configuration)。

<project>

    <!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

我把这个添加到项目描述下面的pom.xml中,它起作用了:

<properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>