maven|项目管理工具maven,使用起来真香( 二 )


典型的例子就是jdbcTemplate , 它在编译、测试和运行代码时都需要 。
②测试依赖范围test
使用此依赖范围的Maven依赖 , 只对测试classpath有效 。
在编译和运行项目期间都不需要使用此依赖 。
典型的例子就是Junit , 它只在测试代码时有效 。
③已提供依赖范围:provided
使用此依赖范围的maven依赖在编译和测试classpath有效 , 但运行时无效 。
典型的例子就是servlet-api 。
编译和测试的时候需要使用servlet-api中的方法 , 但是使用tomcat运行项目的时候不需要 。
我们查看下Tomcat的文件路径 , 会发现其本身就自带了该jar包 。
所以Tomcat在运行期间会自动提供这个依赖 。
如果我们引入的该依赖在运行时也有效 , 一旦和Tomcat自带的版本不一样 , 就会出现冲突 。
④运行时依赖范围:runtime
使用此依赖范围的maven依赖对于测试和运行classpath有效 , 但在编译时无效 。
典型的例子是JDBC驱动实现 。
项目中只有在执行测试或者运行项目的时候才需要该依赖 。
⑤系统依赖范围:system
该依赖和provided依赖范围完全一致 。
但是此依赖不是来自Maven的中央仓库 。
使用system范围的依赖时必须通过<systemPath>标签指定依赖文件的路径 。
典型的例子是Oracle的驱动包 。
该依赖从中央仓库无法下载 , 需要先将Oracle的驱动包下载到本地 , 再通过本地路径引入 。
该依赖范围了解即可 , 使用不常见 。
注意:
上述编译都是指对项目主代码的编译 , 不包含对于测试代码的编译 。
2依赖版本维护
事实上 , 在一个项目中 , 需要引入的依赖是很多的 , 可能有几十个 。
而各个依赖又有不同的版本 , 为了统一维护版本 , 可以专门将依赖的版本抽取出来统一管理:
在<properties>标签中放入各个依赖的版本号 。
版本标签命名格式为依赖名.version 。
在对应的依赖<version>中使用${引入前面定义好的版本即可 。
最后谢谢你的观看 。
【maven|项目管理工具maven,使用起来真香】如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。


推荐阅读