价格面议2020-11-30 14:33:01
maven通过读取分析工程依赖的其他工程的pom文件,自动的把依赖工程对应的依赖(包括这些工程自身的依赖以及从父工程继承到的依赖)加入到当前工程的依赖里面。拉勾IT课小编为大家分解
传递依赖机制虽然可以让我们方便的引入项目需要的全部依赖,但很容易就会使我们工程的依赖变的庞大复杂,并且引入的依赖很可能会同时依赖一个jar包的不同版本。因此maven在传递依赖机制中加入了一些机制来管理最终加入到工程中的依赖项
• 依赖仲裁(Dependency mediation)
• 依赖范围(Dependency scope)
• 依赖管理(Dependency management)
• 排除依赖(Excluded dependencies)
• 选择性依赖(Optional dependencies)
依赖仲裁
当在依赖树中出现同一个依赖的多个版本时,依赖仲裁 用来决定最终采用哪个版本。
maven采用选择 最近 的机制来决定最终的版本号, 最近 指的是在工程的依赖树中距离当前的工程路径最短,这就是为什么我们可以通过在当前工程中声明一个特定依赖,从而复盖传递过来的依赖的原因。如果两个依赖在依赖树中的距离一样,则选择 最先 声明的