m2e中mvn clean package出现的问题

最近使用M2E打包项目时遇到了一些问题。由于我们的项目是基于SpringSide3的,在orm模块大量的使用了泛型,类似:

public <X> List<X> find(final String hql, final Map<String, ?> values)
public <X> List<X> find(final String hql, final Map<String, ?> values)

在Eclipse的JDT编译器下是没有任何报错的。然而,如果我们使用mvn clean package命令打包时,就会出现

 写道
无法确定 <X>X 的类型参数;对于上限为 long,java.lang.Object 的类型变量 X,不存在唯一最大实例

 这种错误,这是因为mvn命令调用的是系统$JAVA_HOME下的javac命令,而Oracle的jdk不支持这种写法的泛型,除非将结果强制转换成List<Object>或者Object,而这种写法会使SpringSide丧失优雅性。

目前的解决办法是,在Eclipse中使用Project-->clean使用JDT将源代码编译到target文件夹下,然后直接使用mvn package打包。

猜你喜欢

转载自stephansun.iteye.com/blog/1292584