【Java基础之Maven】2019-01-17 Maven中scope属性讲解(超详细)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kye055947/article/details/86671847

【Java基础之Maven】2019-01-17 Maven中scope属性讲解(超详细)

最近在搭建maven工程时,遇到一个问题,因为maven中scope属性错误导致项目启动不起来,最后一个一个排除pom的差异,才发现有一个pom.xml文件中的scope的属性不知道什么时候随手给删了,郁闷死了。所以说了解scope的功能还是挺重要的。

scope:表示该jar包的适用作用范围

1. scope的分类

1.1 compile

默认值,表示依赖项目需要参与到当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖,打包的时候通常需要包含进去。

1.2 test

依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit。

1.3 runtime

表示被依赖项目无参与项目的编译,不过后期的测试和运行周期需要参与。与compile相比, 跳过了编译而已。例如: JDBC驱动,使用运行和测试阶段。

1.4 provided

打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于bompile,但是打包阶段做了exclude的操作。

1.5 system:

从参与度来说,和provided相同,不会被依赖不糊从maven仓库下载,而是从本地文件系统中拿。需要添加systemPath的属性来定义路径。

参考博客:maven中scope属性的

猜你喜欢

转载自blog.csdn.net/kye055947/article/details/86671847