赞
踩
在使用maven导入依赖时出现一个问题,在导入依赖成功后,去程序中引入jar包,发现导不进去,但是在External Libraries中有确实可以看到jar包已经导入了,在External Libraries里面确实有我想要使用的jar包,在网上搜了一些解决方法都是说重启或是重新加载,但是都没有起作用。
在中有一句 <scope>runtime</scope>,因为是从maven仓库上直接拷贝下来的就没有把这一句话删除,因为导入的jar包一直不起作用,就试了把这个一句话删除了,结果就好了
在网上搜了一下关于scope的分类
一、complie
编译域,这个是Maven中scope的默认值,我们平时不写scpoe配置时默认就是使用这个值。compile表示被依赖项目需要同当前项目编译时一起进行编译,项目测试期以及本项目运行时期同样生效,打包的时候需要包含进去。
二、test
测试域,表示被依赖的项目仅在项目进行测试的时候生效,一般将日志等依赖包(如:logback、Junit、Slf4j等)配置为test,项目运行时不会生效。
三、runtime
运行域,表示被依赖项目不会参与项目的编译,但项目的测试期和运行时期会参与。与compile相比,跳过了编译这个环节。这个感觉就是你在写的项目的代码中用不到这个包,但是你在真正运行的时候需要这个jar包
四、provide
provided意味着打包的时候可以不用打包进去,别的容器会提供,如在web项目中会使用该配置域,例如:当Spring框架提供了日志等包时,自己的日志依赖就可设置为provide。配置provide的被依赖项目会参与编译,测试,运行等周期,同compile,但是在打包阶段做了exclude的动作。
五、system
系统于,配置的效果和周期与provided相同,不过被依赖项不会从maven远程中央仓库下载,而是从本地Maven仓库中获取,节省一定的网络带宽。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。