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的情况

  • 作用域表:

  • 依赖范围对于编译classpath有效对于test classpath有效对于运行时classpath例子
    compileYYYspring-core
    providedYY ervlet-api
    runtime YYjdbc驱动
    test Y junit
    systemYY 本地maven仓库之外的类库

     

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值