Maven编译报不兼容类型 您所在的位置:网站首页 不兼容的文档类型 Maven编译报不兼容类型

Maven编译报不兼容类型

2024-07-12 13:02| 来源: 网络整理| 查看: 265

旧的非Maven项目转Maven项目,编译打包时提示多Warning,大部分Warning并不影响编译打包,可以忽略。但有一些代码报“不兼容的类型:Object无法转换为T”,导致无法编译通过。

原因

报“不兼容的类型:Object无法转换为T”错误原因:Maven默认采用javac编译器进行代码编译,而javac编译器对代码检查较严格。   

解决办法

网上流行的解决方案, 1、开发环境,采用Eclipse的JDT编译,即Project–>Clean触发Eclipse编译,正常运行。 2、Maven编译打包,修改pom文件,指定maven-compiler-plugin的compilerId为eclipse,并使用plexus-compiler-eclipse包。

org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.8 true -nowarn UTF-8 eclipse org.codehaus.plexus plexus-compiler-eclipse 2.0

经测试发现:mvn compile可正确编译,但其实所有报Warning“Type mismatch”(类型不匹配)的类都没有编译打包,项目启动时会报缺少类,这个办法不可行。

最终方案

花了一整天时间查找解决办法,最终采用最简单直接的方法:修改所有报“Object 无法转化为T”的代码,编译打包通过。

心得

解决这个问题过程,最深的感触是:有些时候,最简单的方法可能最奏效(不过不折腾下谁知道呢)。 也许是我查找方式不对,如有其它方法,请留言,不吝指教。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有