这是因为java编译后的class文件没有指定正确引发的 java
项目名称上【右击】--->【Properties】--->【Java Build Path】--->【Source】--->【看看报maven
NoClassDeFoundError的类是哪个源目录,并选中】--->【看下面的Default output folder单元测试
】--->【发现不是target/classes】--->【Edit】学习
补充:测试
所谓的"约定优于配置",在maven中并非彻底不能够修改的,他们只是一些配置的默认值而已。可是使用者除非必要,并不须要去修改那些约定内容。maven默认的文件存放结构以下:ui
/项目目录 spa
/target/classes 编译以后的class文件orm
/src/main 工程源代码目录 xml
/src/main/resource 工程的资源目录资源
/src/test 单元测试目录
/src/main/java 工程java源代码目录
/src/test/java
pom.xml 用于maven的配置文件
/src 源代码目录
/target 输出目录,全部的输出物都存放在这个目录下
每个阶段的任务都知道怎么正确完成本身的工做,好比compile任务就知道从src/main/java下编译全部的java文件,并把它的输出class文件存放到target/classes中。
对maven来讲,采用"约定优于配置"的策略能够减小修改配置的工做量,也能够下降学习成本,更重要的是,给项目引入了统一的规范。