maven的哲学
许多人通常认为 Maven 是一种构建工具。许多刚开始接触 Maven 的人都熟悉 Ant,因此这是一种自然的联想,但 Maven 不仅仅是一个构建工具,而不仅仅是 Ant 的替代品。Maven 与 Ant 完全不同。Ant 只是一个工具箱,而 Maven 是关于应用模式以实现显示可见性、可重用性、可维护性和可理解性特征的基础设施。
如果没有这些特征,多个人就不可能在一个项目上高效地合作。没有可见性,一个人不太可能知道另一个人已经完成了什么,因此很有可能有用的代码不会被重用。当代码不被重用时,很难创建一个可维护的系统。当每个人都在不断地试图找出构成您项目的所有这些不同的点点滴滴在哪里时,任何人都很少有机会理解整个项目。结果,您最终会产生筒仓效应,即共享知识的衰退以及团队成员之间相应程度的挫败感。当流程对每个人都以不同的方式工作时,自然会产生影响。
Maven 的诞生源于一种非常实际的愿望,即让 Apache 的多个项目以相同的方式工作。这样开发人员就可以在这些项目之间自由移动,通过了解其中一个项目的工作原理,清楚地了解它们是如何工作的。如果开发人员花时间了解一个项目是如何构建的,那么他们在进行下一个项目时就不必再次经历这个过程。同样的想法延伸到测试、生成文档、生成指标和报告、测试和部署。所有项目都有足够多的相同特征,Maven 试图在其项目管理的一般方法中利用这些特征。在非常高的层次上,所有项目都需要构建、测试、打包、记录和部署。当然,上面提到的每一个步骤都有无限的变化,但这种变化仍然发生在明确定义的路径范围内,Maven 试图以清晰的方式向每个人呈现这条路径。明确路径的最简单方法是为人们提供一组模式,让参与项目的任何人都可以共享这些模式。