这篇文章主要介绍了Maven坐标与依赖怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Maven坐标与依赖怎么配置文章都会有所收获,下面我们一起来看看吧。
1. 坐标-找到项目依赖的重要依据
<groupId>cmbc.com.cn</groupId> <artifactId>myapp</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging>
说明:
a、groupId、artifactId、version必须配置,packaging为可选配置,未配置则默认为jar
b、项目构件名称与坐标相对应,通常为artifactId-version.packaging,上述坐标对应构件名称为myapp-1.0-SNAPSHOT
2. 依赖配置
<project> <dependencies> 可以包含多个<dependency> <dependency> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <type>...</type> 坐标类型,对应项目坐标定义的packing <scope>...</scope> 依赖范围 <optional>...</optional> 标记依赖是否可选 <exclusions> 排除传递性依赖 ... </exclusions> </dependency> </dependencies></project>
3. 依赖详述
依赖范围
a、依赖范围种类
b、依赖范围的作用
Maven有编译、测试、运行classpath,依赖范围用于控制依赖与三种classpath的关系。
传递性依赖
a、项目A依赖于B,B依赖于C,则C是A的传递性依赖。Maven会将必要的间接依赖以传递式依赖的形式引入到项目。
b、确定传递性依赖范围
项目A依赖于B,B依赖于C,则B是A的第一直接依赖,C是B的第二直接依赖,C是A的传递性依赖。第一和第二直接依赖的范围决定了传递性依赖的范围,如下所示,左边为第一直接依赖范围,上面为第二直接依赖范围,中间为传递性依赖范围:
依赖调解
当项目多个直接依赖在其自己的依赖路径中分别依赖了同一个其它依赖,那么该引入哪一个路径上的依赖呢?
规则:不同路径长度,路径最短优先;相同路径长度,第一申明优先
可选依赖
假设A依赖于B,B依赖于C(可选),D(可选)(在B项目中的pom.xml文件依赖C和D,申明
排除依赖
传递性依赖会隐式的引入很多依赖,极大简化了项目依赖的管理。但在以下情形需要使用
a、A依赖B,B依赖C,C(快照版本)不稳定可能会影响项目A。此时需要排除C而引入引入C的稳定版本。
b、可能由于版权原因,C(稳定版本)不在中央仓库,而D项目是一个可替代的实现。此时需要排除C而引入D
关于“Maven坐标与依赖怎么配置”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Maven坐标与依赖怎么配置”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。