Maven - jar包依赖范围(scope标签)

  • compile:默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。

  • provided:只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 ,告诉maven这个jar包未来在我的服务器中有,不需要将它打包在工程中;实际项目打包的时候,lib文件夹里面maven导入的provided包(jar包)都没有。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api。

  • runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。

  • test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。

  • system:(类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它)系统范围,与provided类似,只是标记为该scope的依赖包需要明确指定基于文件系统的jar包路径。因为需要通过systemPath指定本地jar文件路径,所以该scope是不推荐的。如果是基于组织的,一般会建立本地镜像,会把本地的或组织的基础组件加入本地镜像管理,避过使用该scope的情况。

————————————————
本文转自-链接:https://blog.csdn.net/qq_36761831/article/details/91039984

猜你喜欢

转载自www.cnblogs.com/must-grow/p/11936022.html