许多大型的项目都已经模块化或组件化了,每个组件都可以自己进行版本发布,由于各组件之间有依赖关系,一个组件的版本号频繁修改(例如每个组件都遵从语义化版本控制语义化版本控制,当bugfix时修订版本号会频繁的进行修改),会引起依赖它的组件也需要及时修改依赖的版本号,这样既繁琐又低效。这时候可以通过指定范围依赖来解决,上层的组件可以不用关心下层的组件版本号修改(在不影响使用的前提下)。
下面通过例子说明如何在maven项目中指定范围依赖,并进行编译。这里假设某个项目由A、B、C三个组件组成,其中A组件依赖于B组件。在A项目中指定对B组件的范围依赖,假设依赖B组件的2.3.*版本,即末尾版本号不管怎么修改,A组件都不需要关心,但在每次编译部署时希望能在maven repo里拉到最新的jar包。
- 在A组件中的指定B的版本依赖为一个范围区间[2.3.0,2.4.0),即表示了A组件依赖B组件的2.3.*版本。在pom.xml有关配置如下:
<properties>
<b.version>[2.3.0,2.4.0)</b.version>
</properties>