您的位置:首页 > 其它

Maven项目被clean命令之后的红叉

2011-05-17 13:50 211 查看
Maven项目被clean命令之后的红叉


关键词:maven,cannot be resolved to a type,eclipse,clean
公司全面转入Maven项目开发,对于传统的Java项目开发过程,Maven无疑如虎添翼,不但高效,而且提供一种优雅的项目结构和管理形式,完全脱离。不过对于初用的同学觉得驾驭它有些困难,尽管我为同事们做了两次培训,仍然有不少问题出现。现抽取一个常见的问题来写一篇博客。
该问题的特征是,使用Eclipse集成Maven开发项目,执行clean命令后,原来编译的结果被清掉,然后在编辑、编译源代码或运行时报“XXX(类) cannot be resolved to a type”错误,Eclipse的Package Explorer窗口出现大量的红叉。这种现象是被IDE之外的命令清除了结果,IDE不能找到编译文件。
解决的办法是:Eclipse菜单中找到Project -> Build automatically,并确定是勾选的,其次点击Project -> Clean…菜单命令项,在弹出的对话框中找到工程,如果是多个工程依赖开发,可以选择“Clean all projects”,然后点击“OK”按钮。此过程Eclipse会清除项目中编译的.class文件,同时重新编译工程(类似于jBuild中的Rebuild功能)。
我们知道,Maven可以托管项目的整个生命周期,它从验证、源代码管理、编译、测试、打包、分发、部署(安装)整个系列过程都会参与。而IDE也可以完成这些功能,因此两者之间会出现重复却不能智能协作的操作,Maven清除了Eclipse编译结果,Eclipse则以红叉叫嚣。
当然,由于m2e插件在不断地升级,将会协作得更好(目前仅发展到了0.12版本,似乎离1.0正式版本还有很长的道路)。实践过程中,首要是排除项目中的错误,如果项目中存在错误,Eclipse也不会自动编译的。通过Problems窗口可以看到错误报告(可在菜单Windows -> show views中找到并显示),报告中有错误,务必先修复,否则无法强制Eclipse编译。
最后向大家奉献我在公司做培训的Maven PPT(下载),问题可询:zhangjihao@sohu.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: