最佳实践(5.3)

Maven依赖涉及的知识点比较多,在理解了主要的功能和原理之后,最需要的当然就是前人的经验总结了,我们称之为最佳实践。

排除依赖:传递性依赖会给项目隐式地引入很多依赖,这极大地简化了项目依赖的管理,但是有些时候这种特性也会带来问题。例如,当前项目有一个第三方依赖,而这个第三方依赖由于某些原因依赖了另外一个类库的SNAPSHOT版本,那么这个SNAPSHOT就会成为当前项目的传递性依赖,而SNAPSHOT的不稳定性会直接影响到当前的项目。这时就需要排除掉该SNAPSHOT,并且在当前项目中声明该类库的某个正式发布的版本。

归类依赖:

很多关于Spring Framework的依赖,它们分别是

优化依赖:

在软件开发过程中,程序员会通过重构等方式不断地优化自己的代码,使其变得更简洁,更灵活。同理,程序员也应该能够对Maven项目的依赖了然于胸,并对其进行优化,如去除多余的依赖,显示地声明某些必要的依赖。

在这些工作之后,最后得到的哪些依赖被称为已解析的依赖。

1.可以运行如下的命令查看当前项目的已解析依赖: mvn dependency:list

2.当这些依赖经Maven解析后,就会构成一个依赖树,通过这棵依赖树就能够很清楚地看到某个依赖是通过哪条传递路径引入。

可以运行如下命令查看当前项目的依赖树:mvn dependency:tree

3.使用dependency:list和dependency:tree可以帮助我们详细了解项目中所有依赖的具体信息,在此基础上,还有dependency:analyze工具可以帮助分析当前项目的依赖

区分: Used undeclared dependencies,意指项目中使用到的,但是没有显示声明的依赖

结果中还有一个重要的部分是Unused declared dependencies,意指项目中未使用的,但是声明的依赖,对于这样一类依赖,我们不应该简单地直接删除其声明,而是应该仔细分析,由于dependency:analyze只会分析编译主代码和测试代码需要用到的依赖,一些执行测试和运行时需要的依赖它就发现不了。很显然,该例中的spring-core和spring-beans是运行Spring Framework项目必要的类库,因此,不应该删除依赖声明。当然,有时候确实能通过该信息找到一些没用的依赖,但一定要小心测试。

猜你喜欢

转载自weigang-gao.iteye.com/blog/2158192