以前一直用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
看看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'>版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。