简单梳理一下基础知识
Scope属性
依赖范围
控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。
- compile(编译)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。
- provided(已提供)
provided 只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
- runtime(运行时)
runtime在运行和测试系统的时候需要,但是在编译的时候不需要。比如:系统在编译的时候只需要Jdbc API JAR,而只有在运行系统时候才需要JDBC。