项目接口本地junit运行测试,报NoClassDefFoundError的错误,但是经过检查,发现依赖包没有问题,经过一番探查,发现是maven依赖的scope设置为provided引起,注释掉scope后成功运行,特此记录。
scope元素的作用:控制 dependency 元素的使用范围。
compile:默认值。表示被依赖项目需要参与当前项目的编译、测试、打包、运行,是一个比较强的依赖。
test:依赖项目仅仅参与测试相关的工作。包括测试代码的编译和执行,不会被打包,例如:junit。
runtime:表示被依赖项目无需参与项目的编译,不过参与后期的测试、打包、运行。与compile相比,跳过了编译。例如JDBC驱动,适用运行和测试阶段。
provided:理论上可以参与编译,测试等周期,但不被打包,也不会参与运行,因为其他的依赖会提供。相比于compile,打包阶段做了exclude操作。
system:和provided相同。不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径。一般用于引用外部Jar包。
import:它只使用在<dependencyManagement>中,表示从其它的pom文件导入dependency的配置。
原文链接:https://blog.csdn.net/weixin_40017062/article/details/122711341