【发布时间】:2015-03-20 13:04:30
【问题描述】:
我在 IDEA 中导入了一个 maven 项目。有一个子模块对常规和测试源使用不同版本的 java - 它对常规源使用 java 1.4,对测试源使用 java 7,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.4</source>
<target>1.4</target>
<testSource>1.7</testSource>
<testTarget>1.7</testTarget>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
项目在使用maven时编译正常,但在IDEA中编译失败。当我打开项目结构 -> 模块设置时,我看到模块是以 1.4 的语言级别导入的。因此,测试类的编译失败,因为它们使用了 1.4 中不可用的功能。
作为一种解决方法,我手动更改 pom.xml 中的 java 版本。有没有不用修改maven配置的方法?
编辑:按照 cmets 中的建议,我在 IDEA 内的项目结构中手动更改了设置,但在编译项目时出现以下错误:
Information:3/20/2015 5:29 PM - Compilation completed with 1 error and 0 warnings in 5 sec
Error:java: javacTask: source release 1.7 requires target release 1.7
【问题讨论】:
-
据我所知,每个模块只有一个 Java 版本支持。为什么开发时不想使用 1.7?假设 intellij 使用 1.7,而 Maven 仍然使用 1.4 编译它。我认为它会起作用。另一种选择是将您的测试项目放到另一个模块中。
-
@bhdrkn 我尝试更改 IDEA 中的设置,但我在问题中添加了一个看起来很奇怪的错误。
标签: java maven intellij-idea