【问题标题】:Changed JDK version in pom.xml but eclipse still using default of 1.5更改了 pom.xml 中的 JDK 版本,但 Eclipse 仍使用默认值 1.5
【发布时间】:2014-06-29 10:29:40
【问题描述】:

我正在尝试使用 maven 和 m2eclipse 构建现有项目。我为它创建了一个新的 maven 项目并导入了我的源文件并添加了必要的依赖项,但我收到了编译错误,因为它默认使用 Java 1.5 设置。我尝试更新 pom.xml 文件以指示系统使用 Java 1.7,然后我告诉 eclipse 从 maven 更新项目设置,关闭并重新打开项目,然后重新启动 eclipse 以查看它是否会刷新应该使用 Java 1.5 的信息,但是 eclipse 仍然坚持该项目应该使用 1.5 编译。我的 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>uk.org.dsf</groupId>
    <artifactId>util-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>util-test</name>
    <description>utility classes for testing purposes</description>
    <plugin> <!-- enable java 1.7 -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.jmock</groupId>
            <artifactId>jmock</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.jmock</groupId>
            <artifactId>jmock-junit4</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.3.1</version>
        </dependency>
    </dependencies>
</project>

有什么想法吗?

【问题讨论】:

  • 你能检查一下eclipse的项目属性,看看那里设置/选择了什么版本
  • Eclipse 说的是 J2SE-1.5,但它必须从 Maven 获取该信息,因为我的工作区默认值为 1.7。难道不应该在 pom 更改时从 pom 更新 eclipse 设置吗?
  • 是的,但我有点困惑,因为答案与其他类似问题的答案(例如stackoverflow.com/questions/3032628/…)根本不一致,这表明您应该通过 pom.xml 和 m2eclipse 进行更改自动调整 Eclipse 设置,这是文档似乎建议应该发生的事情。我不愿意在每次启动新项目时手动执行更改,因为更改应该会自动发生。
  • 另请注意:我在上面所做的声明与该问题的最高评分(而不是接受)答案所建议的相同。对于这里应该发生的事情似乎存在一定程度的混淆,最好直接回答问题所在。

标签: eclipse maven m2eclipse


【解决方案1】:

上面引用的 POM 文件格式错误。 &lt;plugin&gt; 标签应该嵌套在 &lt;build&gt;&lt;plugins&gt; 块内; m2eclipse 因此无法从中找到编译器详细信息。这里唯一奇怪的是这不会产生任何类型的错误或警告消息。它至少应该导致 XML 文件不符合其指定架构的警告。

我遇到的另一个相关问题:如果您在 eclipse Juno 中指定 java 版本 > 1.7,该值将被忽略,即使您配置了 Java 8 JDK。看来 1.8 只能在 Luna 中正常工作,也许 Kepler 安装了一些更新(尚未测试该配置)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 2013-08-19
    • 2014-03-24
    • 2021-12-31
    相关资源
    最近更新 更多