1. maven概念模型
Maven 是Apache下的一个开源项目,它是一个创新的项目管理工具,它用于对Java项目进行项目构建、依赖管理及项目信息管理。
Maven 包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑
>>项目对象模型(Project Object Model)
通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标、打包方式等。
>>依赖管理系统(Dependency Management System)
通过定义项目所依赖组件的坐标有maven进行依赖管理。
比如:项目依赖spring-context, 通过在pom.xml中定义依赖即可将spring-context的jar包自动加入到工程:
pom.xml中定义依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
>>一个项目生命周期(Project Lifecycle)
一个软件开发人员每天都在完成项目的生命周期:清理、编译、测试、部署,有的手工完成,有的通过Ant(项目构建工具)脚本自动完成,maven将项目生命周期抽象统一为:清理、初始化、编译、测试、报告、打包、部署、站点生成等。Maven就是要保证一致的项目构建流程,通过执行一些简单的命令即可实现上面生命周期的各个过程。
>>插件(plugin)目标(goal)
maven管理项目生命周期过程都是基于插件完成的。
2.maven的仓库
maven工程需要配置仓库,本地的项目A项目B等通过maven从远程仓库(网络上的仓库)下载jar包并存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不需要从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载。
Maven仓库类型