在pom.xml中更改了JDK版本,但eclipse仍然使用默认值1.5

时间:2014-05-12 06:45:38

标签: eclipse maven m2eclipse

我试图使用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>

任何想法在这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

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

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