项目集成Maven后JUnit报ClassNotFoundException错误的分析及解决

来源:互联网 发布:js弹出确认框 编辑:程序博客网 时间:2024/06/06 12:45
前提:原有项目一切运行正常,单元测试正常执行。
项目开始使用Maven管理,结果发现原有的JUnit测试无法执行,类无法找到(java.lang.ClassNotFoundException)。无论如何修改Maven配置,报错依然。


分析原因:

MyEclipse之所以能识别项目,是根据.project文件解析;而项目的目录结构则是在.classpath文件中定义。MyEclipse的JUnit插件也是根据以上文件来查找源代码和class文件的存放目录。项目集成Maven后,通过执行maven命令,则class文件生成目录由pom.xml文件指定。

而Maven默认使用的工程目录结构和MyEclipse中的默认目录结构不同,此时,当pom.xml文件中指定的目录和.classpath文件指定的目录不同时,就会报上文中提到的错误。


因此,项目集成Maven时,执行JUnit测试时需要注意的地方如下:

pom.xml文件中的如下配置


应该和.classpath文件中的如下配置相对应。


如此配置之后,JUnit可正确执行,而又不影响Maven的打包、发布等功能。

0 0