口语化描述Maven的依赖范围(scope),简略不详细

文章目录

  • 一、compile(默认范围)
  • 二、test(用于测试)
  • 三、provide
  • 四、import(用来管理依赖版本)
  • 五、system
  • 六、runtime
  • 版本仲裁

一、compile(默认范围)

  • 范围最大哪里都能用

二、test(用于测试)

  • 只有test文件夹下的程序能用
  • 不会把自身使用的依赖向子工程传递

三、provide

  • 程序正常打包,依赖不打包
  • 如果服务器上不提前准备依赖,程序运行会报错。
  • 不会把自身使用的依赖向子工程传递

四、import(用来管理依赖版本)

  • 打包类型必须是pom
  • 必须放在dependencyManagement中
  • 用来管理依赖版本的

五、system

  • 用路径来导入本地jar包的,需要写systemPath
  • 很垃圾,移植性很差,狗都不用

六、runtime

  • 使用方式
Class.forName("com.mysql.cj.jdbc.Driver");
  • 编译时不使用,测试时和运行时使用
// 编译时不使用,解释很简单,下面这句会爆红
import com.mysql.cj.jdbc.Driver;

版本仲裁

  • 最短路径优先
  • 路径相同时先声明者优先

你可能感兴趣的:(次要的个人笔记,maven,java)