Maven中scope标签的分类
1. compile:<scope>标签的默认值,表示被依赖项目需要参与当前项目的编译,测试和运行周期,项目打包时会包含进去。
2. runtime:被依赖项目不参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段。所以在项目打包时会包含进去。
3. test:被依赖项目仅仅参与项目的测试相关的工作,包括测试代码的编译和执行,项目打包时不会被包含进去。
4. provided:打包的时候可以不用包进去,别的地方会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
5. system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径
compile:参与所有的编译,测试,运行;
compile的缩小版是test:参与测试时的编译和运行;
runtime:不参与编译,测试运行都参加。
provided:别的地方有,不打包
system:从本地系统文件那里找。
---------------------------------------------
如发现错误,还请及时指出,多谢大侠!
---------------------------------------------