Maven编译报不兼容类型

旧的非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包。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <fork>true</fork>
                    <compilerArgument>-nowarn</compilerArgument>
                    <encoding>UTF-8</encoding>
                    <compilerId>eclipse</compilerId>
                </configuration>
                 <dependencies>
                    <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-compiler-eclipse</artifactId>
                        <version>2.0</version>
                    </dependency>
                </dependencies>
            </plugin>

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

最终方案

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

心得

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

Idea和Maven版本不兼容是指在使用Idea开发工具进行项目开发时,所使用的Maven版本与Idea工具不匹配或不支持。这可能导致项目无法正常构建、依赖无法下载、编译错误等问题。 兼容性问题的出现可能是由于以下原因: 1. Idea版本较旧:如果您使用的是较新版本的Maven,但是Idea工具版本较旧,那么Idea可能不支持或无法识别最新的Maven功能和配置项。 2. Maven版本较旧:相反,如果您使用的是较新版本的Idea工具,但是Maven版本较旧,那么Maven可能不支持或无法识别Idea工具所使用的某些功能和插件。 解决此问题的方法有: 1. 更新Idea或Maven:建议您首先检查您正在使用的Idea和Maven版本,并尝试更新到最新版本。通过使用相同或兼容的版本,可以更好地解决兼容性问题。 2. 配置Idea和Maven插件:在Idea中,您可以通过打开"Preferences"或"Settings"对话框,并在"Maven"选项卡下配置相应的Maven插件。确保插件版本与您正在使用的Maven版本相匹配。 3. 修改项目配置:如果问题仅出现在特定的项目中,您可以尝试修改项目中的Maven配置文件(pom.xml)或Idea配置文件,以满足兼容性要求。 4. 向社区寻求帮助:如果以上方法无法解决问题,您可以向Idea或Maven的官方社区寻求帮助。在这些社区中,您可以提出问题并获得专家或其他用户的解答和建议。 总之,Idea和Maven版本不兼容可能导致许多问题,但通过更新工具版本、配置插件和修改项目配置等方法,您应该能够解决这些兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值