Maven:错误:-source 1.3不支持泛型,我使用的是1.6

时间:2011-09-29 13:21:43

标签: maven

我已将现有的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) {
                         ^

请提出任何想法,如何解决这个问题?

5 个答案:

答案 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>
    ...