首页 » Maven实战 » Maven实战全文在线阅读

《Maven实战》5.9.2 归类依赖

关灯直达底部

在5.3.1节中,有很多关于Spring Framework的依赖,它们分别是org.springframework:spring-core:2.5.6、org.springframework:spring-beans:2.5.6、org.springframework:spring-context:2.5.6和org.springframework:spring-context-support:2.5.6,它们是来自同一项目的不同模块。因此,所有这些依赖的版本都是相同的,而且可以预见,如果将来需要升级Spring Framework,这些依赖的版本会一起升级。这一情况在Java中似曾相识,考虑如下简单代码(见代码清单5-10)。

代码清单5-10 Java中重复使用字面量

这两个简单的方程式计算圆的周长和面积,稍微有经验的程序员一眼就会看出一个问题,使用字面量(3.14)显然不合适,应该使用定义一个常量并在方法中使用,见代码清单5-11。

代码清单5-11 Java中使用常量

使用常量不仅让代码变得更加简洁,更重要的是可以避免重复,在需要更改PI的值的时候,只需要修改一处,降低了错误发生的概率。

同理,对于account-email中这些Spring Framework来说,也应该在一个唯一的地方定义版本,并且在dependency声明中引用这一版本。这样,在升级Spring Framework的时候就只需要修改一处,实现方式见代码清单5-12。

代码清单5-12 使用Maven属性归类依赖

这里简单用到了Maven属性(14.1节会详细介绍Maven属性),首先使用properties元素定义Maven属性,该例中定义了一个springframework.version子元素,其值为2.5.6。有了这个属性定义之后,Maven运行的时候会将POM中的所有的${springframework.version}替换成实际值2.5.6。也就是说,可以使用美元符号和大括弧环绕的方式引用Maven属性。然后,将所有Spring Framework依赖的版本值用这一属性引用表示。这和在Java中用常量PI替换3.14是同样的道理,不同的只是语法。