Maven的scope标签类别说明记录

Posted 54hsh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven的scope标签类别说明记录相关的知识,希望对你有一定的参考价值。

<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<scope>test</scope>
</dependency>

scope定义了类包在项目的使用阶段。项目阶段包括:编译,运行,测试和发布

compile:默认scope为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会达到包里去。

test:该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit。

runtime:依赖仅参与运行周期中的使用。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。此类的驱动都是为runtime的类库。

provided:该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段进行了exclude操作。

system:使用上与provided相同,不同之处在于该依赖不从maven仓库中提取,而是从本地文件系统中提取,其会参照systemPath的属性进行提取依赖。

import:这个是maven2.0.9版本后出的属性,import只能在dependencyManagement的中使用,能解决maven单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。

以上是关于Maven的scope标签类别说明记录的主要内容,如果未能解决你的问题,请参考以下文章

maven 中 scope标签的作用(runtimeprovidedtestcompile 的作用)

maven pom scope import 学习

pom.xml文件中的Scope标签

maven 配置文件的标签的说明

Maven:各个标签元素说明

maven的仓库配置指定jdk编译版本相关编译命令简介scope依赖的范围以及依赖的传递性