3.6.Maven-依赖管理-依赖范围
一.依赖范围在pom.xml配置文件中所配置的依赖默认情况下是可以在任何地方使用的这个地方包括main文件夹下、test文件夹下也可以在这个项目打包的时候将这个jar包打包进去这是默认情况。然而在Maven项目中可以通过标签scope来控制依赖的作用范围也就是说可以通过scope的配置来控制当前依赖是在主程序范围内有效、还是测试程序范围内有效scope的取值如下图如上图compile是默认值可以不写该值意味着在主程序、测试程序以及打包(运行)均有效在大多项目开发中scope的取值都是默认值compile。其他同理。上图中junit单元测试仅仅在测试程序范围内有效。二.例一以上述图片的maven-project01为例在pom.xml文件下没有设置依赖范围那就是默认的compile意味着该依赖的作用范围为主程序、测试程序以及打包(运行)首先验证在主程序内是否生效打开main包下的主程序如下图如上图判断main包下主程序中依赖是否生效主要看能不能使用该依赖的接口或者类即可logback依赖提供了接口Logger如下图如上图输入Logger系统会有提示slf4j包或者logback包下(注意不是logging包下)的类或者接口说明依赖生效。接下来看测试程序范围内是否有效在test包下的java目录下创建一个类如下图如上图现创建一个方法来判断依赖是否生效如下图如上图输入Logger系统会有提示slf4j包或者logback包下(注意不是logging包下)的类或者接口说明依赖生效。最后要判断项目打包时该依赖是否参与如下图如上图首先在pom.xml文件中添加一个打包插件!--打包插件-- build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-assembly-plugin/artifactId version2.4.1/version configuration descriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefs /configuration executions execution idmake-assembly/id phasepackage/phase goalsgoalsingle/goal/goals /execution /executions /plugin /plugins /build其实Maven也会提供一个打包的功能(package)但是Maven提供的打包的插件只能将当前项目的资源打包进去所依赖的JAR包是不会一起打包进去的如下图接下来进行打包(package)操作判断logback的依赖会不会打包进去打开Maven面板点击打包(package)后就会进行打包操作打包后的结果如下图如上图打包好的JAR包会放在target目录下在磁盘中打开target目录如下图如上图现在看打包好的JAR包中是否包含logback的依赖选择有dependencies的JAR包如下图用记事本打开如上图可知ch-qos-logback下的依赖是有的这就说明scope配置为默认值compile时在任何范围内都是有效的包含主程序、测试程序、打包(运行)。三.例二scope配置为默认值compile时如下图main包下的主程序和test包下的java包下的程序分别引入slf4j包下的Logger(也可以引入logback包下的但不能引入logging包下因为logging包不是特有的依赖)如下图接下来设置scope的值为test并刷新Maven如下图如上图首先打开main包下的主程序如下图如上图发现main包下的主程序已经不能使用该依赖了再打开test包下的java包下的程序如下图如上图发现test包下的java包下的程序是可以使用该依赖的这就是scope设置为test的效果主程序不能使用测试程序可以使用。最后测试打包时这个logback现在还会不会参与打包先把target目录删掉再进行Maven面板上的打包(package)操作结果如下图如下图有了一个新的target包打开磁盘目录用记事本打开有dependencies的JAR包其中是否包含logback的依赖如下图如上图可知没有包含logback的依赖所以打包时没有生效。其他的scope值同理就不演示了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417355.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!