maven : 是一个犹太语,意思是知识的积累
【官方描述】apache maven
http://maven.apache.org/what-is-maven.html
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:
Making the build process easy
Providing a uniform build system
Providing quality project information
Providing guidelines for best practices development
Allowing transparent migration to new features
Maven的主要目标
是让开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,Maven试图处理以下几个方面的问题:
- 使构建过程变得简单
- 提供统一的构建系统
- 提供优质的项目信息
- 提供最佳实践开发指南
- 允许透明迁移到新功能
POM
POM stands for "Project Object Model" 项目对象模型
【官方描述】功能摘要
以下是Maven的主要特点:
* 遵循最佳实践的简单项目设置 - 在几秒钟内启动新项目或模块
* 所有项目的一致使用 - 意味着新开发人员进入项目的时间不会增加
* 卓越的依赖管理,包括自动更新,依赖关闭(也称为传递依赖)
* 能够轻松地同时处理多个项目
* 一个[庞大且不断增长的库和元数据库,](http://maven.apache.org/repository/)可以立即使用,并与最大的开源项目一起安排,以实现最新版本的实时可用性
* 可扩展,能够轻松[编写](http://maven.apache.org/plugin-developers/) Java或脚本语言的[插件](http://maven.apache.org/plugin-developers/)
* 只需很少或不需要额外配置即可即时访问新功能
* 用于在Maven之外进行依赖关系管理和部署的Ant任务
* 基于模型的构建:Maven能够根据项目的元数据将任意数量的项目构建到预定义的输出类型(如JAR,WAR或分发)中,而无需在大多数情况下执行任何脚本。
* 项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成包含您需要添加的任何文档的网站或PDF,并添加有关项目开发状态的标准报告。在“项目信息”和“项目报告”子菜单下,可以在本网站左侧导航栏的底部看到此信息的示例。
* 发布管理和发布发布:没有太多额外配置,Maven将与您的源代码控制系统(如Subversion或Git)集成,并根据特定标记管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven能够发布单个输出,例如JAR,包含其他依赖关系和文档的存档,或者作为源代码分发。
* 依赖管理:Maven鼓励使用JAR和其他依赖项的中央存储库。Maven附带了一种机制,您的项目客户可以使用该机制从中央JAR存储库下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用JAR并鼓励项目之间的通信,以确保处理向后兼容性问题。
maven能做的事情?
- 编译
- 测试(junit)
- 运行
- 打包
- 部署
maven 的好处
依赖管理
一键构建
大型项目中的微服务架构的高效开发
maven 的搜索依赖文件的顺序
本地-》远程仓库(私服)-》中央仓库