1.3错误中不支持泛型,即使maven构建中的java_主页点jdk1.7也是如此

1.3错误中不支持泛型,即使maven构建中的java_主页点jdk1.7也是如此,java,maven-2,Java,Maven 2,运行mvn clean install时,我收到以下消息 [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure D:\data\work\extjs.parser\src\main\java\com\model\Component.java:[17,15] error: generics ar

运行mvn clean install时,我收到以下消息

[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

D:\data\work\extjs.parser\src\main\java\com\model\Component.java:[17,15] error:
generics are not supported in -source 1.3

could not parse error message:   (use -source 5 or higher to enable generics)
D:\data\work\extjs.parser\src\main\java\com\model\Container.java:14: error: gene
rics are not supported in -source 1.3
    private List<Component> items;
[错误]生成失败
[信息]------------------------------------------------------------------------
[信息]编译失败
D:\data\work\extjs.parser\src\main\java\com\model\Component.java:[17,15]错误:
-源代码1.3中不支持泛型
无法分析错误消息:(使用-source 5或更高版本启用泛型)
D:\data\work\extjs.parser\src\main\java\com\model\Container.java:14:错误:gene
源代码1.3中不支持RIC
私人清单项目;
该项目是一个简单的maven项目,但当我已经将JAVA_HOME设置为jdk1.7安装路径时,不会编译带有泛型错误的项目

然而,当我添加插件时,它工作得很好。为什么需要显式设置hava home path

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>
                <executable>${env.JAVA_HOME}/bin/javac</executable>
                <fork>true</fork>
            </configuration>
        </plugin>

org.apache.maven.plugins
maven编译器插件
1.7
1.7
真的
真的
${env.JAVA_HOME}/bin/javac
真的
提前谢谢你

-源代码1.3中不支持泛型


错误信息非常清楚。您已经告诉编译器在没有泛型的源代码1.3模式下编译。因此,没有泛型。

您需要告诉Maven使用JDK1.5显式编译源代码。在pom.xml文件中声明Maven编译器插件(Maven编译器插件),如下所示:

<project ...>
  <dependencies>
   ...
  </dependencies>
  <build>
    <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.3.1</version>
           <configuration>
               <source>1.5</source>
               <target>1.5</target>
           </configuration>
       </plugin>
    </plugins>
  </build>
</project>

...
org.apache.maven.plugins
maven编译器插件
2.3.1
1.5
1.5

这是一个老问题。等了很长一段时间后,我没有得到答案。然而,在浏览maven编译器插件文档时,我知道该插件有默认设置。所以早期版本使用JDK1.3作为源/目标的默认版本,现在它使用1.5e,g。 在阅读文档n运行“mvn clean install-X”后,观察到

  • Maven编译目标在内部使用Maven编译器插件
  • 在pom中,通过在构建部分指定maven编译器插件,我们可以覆盖某些配置,如源/目标
  • 如果我们不指定,那么maven将使用“maven编译器插件”本身提供的默认值,这取决于它的版本

因此,在pom中未指定“maven编译器插件”及其配置(源/目标)之前出现了错误。

理想情况下不应该是这样,做一件事,尝试在调试模式下运行maven。e、 g.*mvn-X clean install>test.log**并分析日志文件以查看差异。您使用的是eclipse吗?感谢所有人响应我的查询。使用-X-e选项运行maven会有所帮助。还发现maven默认使用source as 1.5,因此必须显式设置。详细信息,看一看问题,在编译器插件中提到使用源代码和目标代码作为1.7,错误消息说不是这样,所以看起来他的配置是错误的。@HimanshuBhardwaj我建议您看看错误消息。这就是为什么需要了解属性没有反映的原因。@HimanshuBhardwaj我现在建议您看看这个问题。当他指定你提到的插件时,它就起作用了。问题是为什么没有它它就不能工作,或者它是否应该工作。