一、示例
<dependencies>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.13</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<optional>true</optional>
<scope>provided</scope>
</dependency>
</dependencies>
二、标签
1、Dependencies
描述:项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。
2、Exclusions
描述:从依赖构件列表里,列出被排除的依赖构件集。此元素主要用于解决版本冲突问题。
3、Optional
描述:可选依赖,可选依赖阻断依赖的传递性,如果不需要某项功能,可以不引用这个包。
4、Scope
描述:依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。
取值范围:
compile :默认范围,在部署的时候将会打包到lib目录下,项目在编译,测试,运行阶段都需要
provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath,适合在编译和测试的环境
runtime: 在执行时需要使用
test: 用于test任务时使用
system: 需要外在提供相应的元素。需要配合systemPath属性使用,通过systemPath来取得相应路径<systemPath></systemPath>
。
用途:可以用来限制dependency的范围可以在不同的环境下打包不同的jar包,比如junit测试类的jar包不需要在编译运行的时候,就可以设置scope为test。