【发布时间】: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 设置,这是文档似乎建议应该发生的事情。我不愿意在每次启动新项目时手动执行更改,因为更改应该会自动发生。
-
另请注意:我在上面所做的声明与该问题的最高评分(而不是接受)答案所建议的相同。对于这里应该发生的事情似乎存在一定程度的混淆,最好直接回答问题所在。