我已将现有的Maven项目导入Eclipse IDE。 我修改了一些代码,它编译成功, 我使用Java 1.6作为编译器 当我试图运行maven clean install -X
时发出以下错误
无法解析错误消息:(使用-source 5或更高版本启用泛型) D:\ bayer \ util \ src \ main \ java \ com \ tata \ bayer \ util \ BrokerageCalendar.java:179:错误:-source 1.3不支持泛型
private static Hashtable<String, Boolean> nyseHolidays = new Hashtable<String, Boolean>();
^
could not parse error message: (use -source 5 or higher to enable generics)
D:\bayer\util\src\main\java\com\tata\bayer\util\APIHttpXmlClient.java:27: error: generics are not supported in -source 1.3
Class<? extends APIResponse> responseClass) {
^
请提出任何想法,如何解决这个问题?
答案 0 :(得分:42)
您是否声明要在项目pom.xml中使用java 1.6?:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument></compilerArgument>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
答案 1 :(得分:26)
配置Maven编译器插件将解决问题。事实证明问题是由Ubuntu存储库中的Maven3包引起的。另一种解决方法是从Apache网站下载Maven 3,它使用更新的Compiler插件。
我想知道为什么在文档声明默认Java源为1.5时会发生这种情况。要查看mvn用于编译器插件的内容,请使用:
mvn help:effective-pom
我的Maven编译器插件是2.0.2,即使我使用的是Ubuntu软件包中的Maven 3.0.4。 当我使用Apache的Maven 3.0.4运行相同的命令时,我有一个插件版本2.3.2,默认为Java 1.5。
答案 2 :(得分:5)
您必须配置Maven编译器插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
答案 3 :(得分:3)
另一种不涉及修改pom的方法是在命令行中指定源和目标:
mvn clean install -Dmaven.compiler.source=1.6 -Dmaven.compiler.target=1.6
请注意,应该避免这种情况,因为无法保证构建可重复。
答案 4 :(得分:1)
我更喜欢这个:
<properties>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.5</maven.compiler.target>
...