转载

Maven依赖中的scope说明

首先查看一下项目中mvn依赖

<dependency>
    <groupId>io.etcd</groupId>
    <artifactId>jetcd-core</artifactId>
    <version>${jetcd.vesion}</version>
    <scope>compile</scope>
</dependency>

一直很奇怪这个scop是干嘛使用的今天百度了一下终于明白了在此做一下总结。

scope值

  • compile(默认)
  • test
  • runntime
  • provided
  • system

compile (默认)

jar包在编译,测试,运行阶段都存在

test

为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行,如:junit。

runntime

dependency 不作用在编译时 ,但会作用在运行和测试时.

provided

它只影响到编译,测试阶段。在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)已经提供了这个jar包,所以无需我们这个artifact对应的jar包了。

原文  https://segmentfault.com/a/1190000021284110
正文到此结束
Loading...