本文已参与「新人创作礼」活动,一起开启掘金创作之路。
测试依赖的范围
这里我们就要揭开scope标签的谜底了,此前在pom.xml文件中配置依赖坐标时,我们会在下面加一个scope标签,并且说过,如果我们不加的话,默认会是compile值,其实它指的就是依赖范围。
依赖范围
标签的位置:dependencies/dependency/scope
标签的可选值:compile/test/provided/system/runtime/import
compile、test、provided范围
compile范围,顾名思义,是整个编译运行过程均有效,空间上包括main目录和test目录,运行时也贯穿开发过程以及部署到服务器上(看有没有打入war包)的运行过程
而test范围,则只有在test目录以及开发过程中适用,并不能在main目录和部署到服务器后适用
provided范围则比test范围多出一个main目录空间的依赖范围,只是在部署到服务器时超出(为防止自己导入的包在部署到服务器上后与其自带的包冲突,比如servlet-api以及jsp-api,如果发生冲突,错误很难找!)
注:一般在maven仓库里找到坐标时,其内给出的值就是最合适的范围,不需要做改动
测试方式
通过import语句将要测试的类引入当前类,引入后,若编译成功,则可以使用,这个范围的依赖对当前类有效;若编译失败,则不能使用,这个范围的依赖对当前类无效
补充:依赖的传递性
提出问题: 当A依赖B,B依赖C,A能否与C构成依赖关系?
回答: 只有当B依赖C的范围是compile范围时,才能实现传递依赖
如果A前再加一个D,隶属于另一个Java工程,若找不到jar包,则是本地仓库没有更新,需要mvn install进行重新安装,便能成功添加依赖