开发者社区> 问答> 正文

能正常运行的jfinal项目在用maven打包时报错?报错

以前一直用eclipse的导出war包,可正常在tomcat下运行

昨天将项目转成maven管理的后,用maven install会报错,异常如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project project_name: Compilation failure
[ERROR] /D:/git/project_name/src/com/jfinal/plugin/activerecord/Model.java:[501,32] 不兼容的类型: com.jfinal.plugin.activerecord.Model无法转换为M
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException


检查了下代码,所有继承了Model类的domain都在config中注册了arp.addMapping,请问这是什么原因造成的,   @jfinal

展开
收起
爱吃鱼的程序员 2020-06-14 16:50:34 640 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    看看JDK引用版本什么的对不?猜的<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/98.gif"alt="">用的是jdk1.8

       是否用的最新版本的jfinal1.9?看错误提示原因是该maven版本对com.jfinal.plugin.activerecord.Model泛型检测没有通过。解决办法可以是换maven版本或者在编译时提供相关的参数。

      最简单快捷的办法是用eclipse的export功能导出war包,项目上线以后再回头再解决maven的问题

    嗯现在eclipse打war包还是可以的,原来是想转maven方便维护,没想到maven也有不少坑。。    刚看了一下jfinal1.9的Model的503行代码:returnfindById(id," "); 改成 return(M)findById(id,""); 应该就可以了。其实这个findById(String)方法转调了findById(String,String)方法,而后者返回的是泛型,是正确的代码,而有些maven版本有bug,无法正确识别更深层次的泛型传递。<divclass='ref'>

    引用来自“JFinal”的评论

        刚看了一下jfinal1.9的Model的503行代码:returnfindById(id," "); 改成 return(M)findById(id,""); 应该就可以了。其实这个findById(String)方法转调了findById(String,String)方法,而后者返回的是泛型,是正确的代码,而有些maven版本有bug,无法正确识别更深层次的泛型传递。

    2020-06-14 16:50:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用Spring.Initializr定制工程脚手架 立即下载
陈曦:使用Spring.Initializr定制工程脚手架 立即下载
低代码开发师(初级)实战教程 立即下载