Maven依赖范围



范围管理

依赖范围

依赖范围:
compile,全环节有效,编译、运行、测试、打包
provided,编译和测试时有效
system,本地jar包与provided范围相同,但需要配置systemPath本地地址,不推荐使用
test,只在测试时有效
runtime,在运行和测试,打包时有效

如果scope默认不写,就是compile范围,那么打包时会打进来,用maven的tomcat插件运行起来后,访问主页会报错

依赖的范围


依赖范围是指依赖jar包在我们maven项目的生命周期里面作用的一个范围
依赖范围:compile,provided,runtime,test,system

依赖范围管理
可以参考jxb项目里,我是如何将网商的sdk(其实就是他们开发好的jar,但不在maven仓库的),发布的
依赖的范围管理
是什么?
依赖的包在生命周期中作用的范围
有哪些?
compile provided runtime test system

依赖范围
compile
provided
test
runtime
system

依赖范围种类的作用

项目依赖范围的分类

依赖范围的分类

依赖范围的种类
依赖范围scope
指依赖的jar包在maven的生命周期内作用的范围


compile 编译范围
在项目编译、运行、测试、打包都依赖的jar包,比如spring项目中对spring-core的依赖
2.provided 已提供范围
只在项目开发完成后编译、运行时有效,打包时不会包含这样的jar包,比如servlet-api容器相关的依赖,在开发项目时需要依赖这些jar包,但在web容器中运行时由于web容器已经自带了servlet-api的jar包,就会产生冲突。
3.runtime 运行范围
只在运行时有效,但是打包时会将对应的jar包包含进来,如jdbc
4.test 测试范围
只在测试时有效,比如junit依赖就是test范围
5.system 系统范围
Maven-scope


依赖范文,挺重要的
https://repo.maven.apache.org/maven2/archetype-catalog.xml,但是配置好镜像后即可
依赖范围管理
1、什么是依赖范围
scope --compile-->provided-->runtime-->test-->system
2、编译范围

默认是compile范围
provide只在编译时有效


层
Maven范围管理-1
Maven依赖范围管理
关于依赖设定的问题,比如provided只在编译和运行时有效
打包的时候scope为system打不进去的问题解决:<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration></plugin>
各种依赖范围
依赖的范围管理