Maven编译错误:不兼容的类型的解决方案

参考:http://blog.csdn.net/liushuijinger/article/details/44618557

泛型在实际的工作中应用非常广泛,关于泛型就不在这里赘述了,感兴趣请戳《重新认识泛型》。项目中用到了如下的泛型:

 

[java]  view plain  copy
 
  1. public <T> T query(String sql, ResultSetHandler<T> rsh) throws SQLException {  
  2.     return this.query(sql, rsh, (Object[]) null);  
  3. }  


以上代码在Eclipse中可以编译通过并成功运行,但是当你使用Maven编译的时候就会报错,错误信息如下:

 

 

[plain]  view plain  copy
 
  1. xxx不兼容的类型  
  2. 需要:xxx  
  3. 找到:    java.lang.Object  


Eclipse编译代码时,使用的是自带的JDT(Java Development Tools),而Maven默认使用的是JAVA_HONE中的javac,而javac相对JDT的检查机制来说,更加的严格,所以导致Eclipse可以编译通过,而用Maven编译会报错的结果。

 

 

解决方案有两个:

 

第一个,借助Eclipse的JDT编译

点击 Eclipse –> Project –> Clean…  使用JDT将源代码编译到target文件夹下,然后直接使用mvn package 打包即可(不要加clean)。

 

第二个,在pom.xml文件中为Maven指定用JDT来编译(推荐)

修改pom.xml文件中maven-compiler-plugin的配置:

 

[html]  view plain  copy
 
  1. <build>  
  2.         ...  
  3.     <plugins>  
  4.             ...  
  5.         <plugin>  
  6.             <groupId>org.apache.maven.plugins</groupId>  
  7.             <artifactId>maven-compiler-plugin</artifactId>  
  8.             <version>3.1</version>  
  9.             <configuration>  
  10.                 <source>${java.version}</source>  
  11.                 <target>${java.version}</target>  
  12.                 <compilerId>eclipse</compilerId>  
  13.             </configuration>  
  14.             <dependencies>  
  15.                 <dependency>  
  16.                     <groupId>org.codehaus.plexus</groupId>  
  17.                     <artifactId>plexus-compiler-eclipse</artifactId>  
  18.                     <version>2.2</version>  
  19.                 </dependency>  
  20.             </dependencies>  
  21.         </plugin>  
  22.         ....  
  23.     </plugins>  
  24.     ...  
  25. </build>  


保存,用Maven编译,顺利通过,你又看到了熟悉的提示信息:

 

[plain]  view plain  copy
 
  1. [INFO] ------------------------------------------------------------------------  
  2. [INFO] BUILD SUCCESS  
  3. [INFO] ------------------------------------------------------------------------  
  4. [INFO] Total time: 9.716 s  
  5. [INFO] Finished at: 2015-03-31T12:35:12+09:00  
  6. [INFO] Final Memory: 18M/219M  
  7. [INFO] ------------------------------------------------------------------------  

猜你喜欢

转载自747017186.iteye.com/blog/2389842