您的位置:首页 > 其它

《Maven权威指南》学习笔记十_依赖管理(Dependency Management) 3ff0

2013-03-27 10:41 393 查看
Maven最强大的特征之一:支持了传递性依赖(transitive dependencies)。

Maven同时也提供了一种机制,能让你排除一些你不想要的传递性依赖。

Maven也提供了不同的依赖范围(dependency scope)。

如当一个依赖的范围是"test"的时候,说明它只有在运行compiler:testCompile(测试编译目标)和surefire:test(测试运行目标)的时候才会被加入到classpath中,如果项目是以 war 或者 ear 形式打包的,测试范围依赖就不会被包含在项目的打包输出中。
当用Maven把项目打包成JAR,它的依赖不会被捆绑在生成的构件中,他们只是用来帮助编译。
当用Maven把项目打包成WAR或者EAR,你可以配置Maven让它在生成的构件中捆绑依赖,你也可以配置Maven,使用"provided"范围,让它排除打包文件中特定的依赖。provided范围告诉Maven一个依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中。当你开发web应用的时候provided范围变得十分有用,你需要通过Servlet API来编译你的代码,但是你不希望Servlet API的JAR文件包含在你web应用的WEB-INF/lib目录中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dependency