首先查看一下项目中mvn依赖
<dependency> <groupId>io.etcd</groupId> <artifactId>jetcd-core</artifactId> <version>${jetcd.vesion}</version> <scope>compile</scope> </dependency>
一直很奇怪这个scop是干嘛使用的今天百度了一下终于明白了在此做一下总结。
jar包在编译,测试,运行阶段都存在
为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行,如:junit。
dependency 不作用在编译时
,但会作用在运行和测试时.
它只影响到编译,测试阶段。在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)已经提供了这个jar包,所以无需我们这个artifact对应的jar包了。