maven依赖范围scope

<scope>标签限定pom的依赖范围

依赖的范围就是控制依赖<dependency>和三种classpath的关系

maven提供了三种class path:

1. 编译 2.测试 3.运行 三种class path5

 

这张图中junit的scope是test ,表明junit只存在于测试的class path中。

 

一共有6种scope范围:

1 .compile: 默认的scope,编译测试运行都有效。

2 . provided:在编译和测试时有效。在运行时不会被加入。比如:构建Java应用时我们可能会添加对servlet的依赖,此时就需要设置scope范围为provided。对于servlet API接口,Java应用运行时并不会使用这个依赖,因为web容器提供了servlet的API,加入进去会导致冲突。

3 .runtime:在测试和运行时有效,eg:项目主代码的编译只需jdk提供的JDBC API 。准备测试或者运行程序时,才需要jdbc接口的具体实现。

4 . test :只在测试时有效

5. system:与本机系统相关联,可移植性差。比如我们要引用本机的Java HOME系统变量,如果移植到其他系统上面,可能无法识别出正确的路径。其他和provided相似,在测试和编译时有效。

6. import :导入的依赖范围,它只用在<dependencyManagement>标签中,表示从其他pom文件中继承过来的依赖。

如下图所示:(没找到原文档,有点模糊)

这里 表示将A中的依赖导入到projectB 中

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值