`
747017186
  • 浏览: 331526 次
社区版块
存档分类
最新评论

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] ------------------------------------------------------------------------  
分享到:
评论

相关推荐

    Maven编译不兼容解决方案

    eclipse 中编译、运行都正常,但是如果用maven的打包命令 mvn clean package 进行打包时会发现有类型错误

    ​实现maven项目中多版本依赖兼容使用解决方案

    以下是如何实现Maven项目中多版本依赖兼容的解决方案: 1. **理解Maven依赖管理**: Maven依赖管理遵循“传递性”原则,即项目可以直接依赖其他项目,间接依赖也会被自动引入。当出现相同类路径的冲突时,Maven会...

    错误:找不到或无法加载主类com.xxx.xxx.Application(完美解决)

    在这个问题中,我们将深入探讨其原因以及提供几种可能的解决方案。 首先,我们需要理解这个错误的根本原因。Java程序的执行始于一个被称为“主类”的特殊类,其中包含`public static void main(String[] args)`方法...

    maven内存溢出解决放啊

    ### Maven内存溢出解决方案 #### 一、引言 在使用Maven进行项目构建时,尤其是在处理大型项目或执行资源密集型任务(如`mvn site`)时,经常会遇到Java堆空间溢出的问题。这类问题通常是由于Maven运行所需的内存...

    maven compare to the ant

    - **Maven**:文档和社区支持同样丰富,而且由于其标准化的构建模型,更容易找到官方推荐的解决方案和最佳实践。 #### 实战案例分析 1. **错误配置示例**: - **问题描述**:在使用Maven的J2EE项目中,配置`...

    编译Hadoop源码需要的maven文件

    8. **遇到的问题及解决**:在编译过程中,可能会遇到各种问题,比如依赖冲突、版本不兼容、编译错误等。这时需要根据错误信息,查阅文档,搜索解决方案,或在社区提问求助。 9. **Hadoop版本与Maven版本兼容性**:...

    maven安装与配置要点和难点以及常见报错和解决方案.zip

    5. **Maven插件问题**:插件版本不兼容或配置不当也可能引发错误,仔细检查POM中的插件配置。 ** Maven进阶配置 ** 1. **多模块项目**:对于大型项目,可以使用Maven的多模块配置,将项目划分为多个子模块。 2. *...

    Maven

    当Maven构建过程中遇到问题,如编译错误或依赖找不到时,可以通过命令行执行mvn clean install -X来开启详细日志,帮助定位问题。同时,Maven的错误信息通常包含了解决方案的线索。 9. **Maven Archetypes**: ...

    Intellij IDEA中使用maven filter遇到的问题

    此外,阅读官方文档和在线社区(如博客、Stack Overflow等)的讨论也能找到解决方案。 在给定的文件列表中,`pom.xml`是Maven项目的配置文件,可能包含Filter的配置;而`src`目录通常包含源代码和资源文件,其中的...

    maven 3.8.4 版本

    Maven 有一个活跃的开源社区,3.8.4 版本的发布意味着社区成员可以继续参与讨论,提出问题,共享解决方案,并为项目的持续发展贡献力量。 总结起来,Maven 3.8.4 版本的更新重点在于提高构建效率、优化依赖管理、...

    Maven Web基础搭建示例

    如果你遇到报错,可以查看错误信息,根据错误类型查找解决方案。通常,错误可能来自JDK版本不兼容、Maven配置错误、依赖冲突或者代码本身的问题。 ### 六、解决常见问题 1. **依赖冲突**:使用`mvn dependency:tree...

    maven软件3.5.0版本

    六、常见问题与解决方案 1. **依赖冲突**:使用`mvn dependency:tree`查看依赖树,找出冲突的库,通过调整依赖范围或使用 `&lt;exclusions&gt;` 标签排除冲突。 2. **构建失败**:检查错误日志,通常问题出在代码错误、...

    Maven使用教程

    - **解决方案**:Maven支持将大型项目拆分成多个子模块,并将每个子模块构建为独立的可复用组件(通常是`.jar`文件),然后将这些组件发布到Maven仓库中。这样,在后续的开发过程中,只需从仓库中下载必要的组件,...

    5_尚硅谷大数据之Hadoop源码编译1

    编译错误:如果遇到编译错误,应仔细阅读错误信息,根据提示解决问题,可能需要下载缺失的 jar 包或修复代码错误。 5. 版本不兼容:确保使用的 JDK 版本与 Hadoop 源码支持的版本相匹配。 6. 编译时间过长:由于...

    maven 3.5.0 Cannot assign configuration entry 'pluginArtifacts' with value '${pl

    6. **搜索解决方案**:在Maven用户邮件列表、Stack Overflow 或其他开发者论坛中搜索类似问题,看看是否有人已经解决了这个问题。 在提供的文件名 "apache-maven-3.5.0-bin.tar.gz" 中,这是Apache Maven 3.5.0的二...

    Java编译错误-UnsupportedClassVersionError.txt

    接下来,我们详细分析这段错误信息及其解决方案: 1. **错误信息解析**: - `UnsupportedClassVersionError`:表示JVM无法识别或不支持加载的类文件的版本。 - `org/openqa/selenium/WebDriver`:这是引发错误的...

    maven-3.3.9

    综上所述,Maven-3.3.9作为一个稳定版本,为Java开发团队提供了高效、可靠的项目管理解决方案。通过深入理解这些核心知识点,开发者能够更好地利用Maven进行项目构建和维护,提高开发流程的标准化和自动化程度。

    maven 3.2.5

    **正文** Maven 3.2.5 是一个流行的Java项目管理和综合工具,由Apache软件基金会开发。这个版本是Maven 3.x系列的一个稳定版本,...如果你正在寻找一个可靠的项目管理解决方案,Maven 3.2.5无疑是一个值得考虑的选择。

Global site tag (gtag.js) - Google Analytics