本文大约1026个字,阅读时间4分钟。 主要介绍了Maven名字的由来、Maven产生的背景和Maven的主要功能。

问题:Maven是啥?

大多数人都用Maven来管理Java项目的依赖,这个应该是Maven的主要功能没跑了,不过我们还是带着这个问题自己去探索吧!

名字由来:

根据Maven官网的解释,Maven这个单词来自意第绪语,意为知识的积累者(accumulator of knowledge),Wikipedia上的解释是:在特定领域极具权威并且乐于将知识分享、传承给他人的专家。咳咳……老外给项目起名字就是有(ai)意(zhuang)思(bi)。

背景介绍:

Maven当初是为了简化Jakarta和Turbine两个项目的构建过程而诞生的。这些项目当初有各自的Ant构建文件并且还有共同使用的JAR文件被重复的提交到CVS上。因此Maven试图将所有Java项目的构建过程标准化;确保一个项目的组成部分有清晰明确的定义;可以方便的发布项目;可以共享多个项目用到的JAR文件。

它的目标:

让开发人员可以在较短的时间内快速厘清项目结构,更快理解整个项目。为了达到这个目的,Maven从以下几个方面入手:

  • 简化项目构建过程
  • 提供统一的构建系统
  • 提供有效/高质量的项目信息
  • 提供开发过程的最佳实践指南
  • 透明迁移到新功能

目标说明:

  • 简化项目构建过程

    虽然使用Maven进行项目构建时,你还是需要对底层机制有所了解,但是Maven还是做了不少工作来对你隐藏这些繁琐的细节。

  • 提供统一的构建系统

    Maven是通过POM(Project Object Model)文件和一系列插件(Plugin)来构建项目的。当你熟悉了某一个用Maven构建的项目,那么对于其他用Maven构建的项目你也可以快速熟悉。

  • 提供有效/高质量的项目信息

    Maven可以通过POM文件以及项目的源代码来生成项目信息。例如,Maven可以提供:

    1. 更改日志(用源码管理工具生成)
    2. 交叉引用
    3. 邮件列表
    4. 依赖清单
    5. 单元测试报告(含覆盖率)
  • 提供开发过程的最佳实践指南

    Maven通过收集现行的开发最佳实践,来指导用Maven构建的项目。例如:单元测试是Maven构建中的一个部分,Maven对单元测试应用如下的最佳实践:

    1. 把单元测试代码和项目代码分开,但是在平级的源码树中
    2. 使用测试用例命名约定来定位和执行测试
    3. 让测试用例来初始化测试环境而不是为测试构建特定的版本
    4. Maven还可以为项目的目录结构、发布管理、缺陷追踪提供指导和帮助。
  • 透明迁移到新功能

    当Maven/Maven插件更新时,无须做改动/较少改动,即可享受新功能

它不是……

  • 建站工具或文档管理工具
  • 可以下载依赖的Ant扩展
  • 一组可重用的Ant脚本

结语

本文是百科百面系列的第一篇文章,也是Maven专题的第一篇文章,对于文章的形式、内容或者技术专题有想法的朋友,欢迎留言~

下一篇文章将会带大家一起安装和体验Maven,下次见!


柯老师
1 声望0 粉丝