一、Maven简单介绍
Maven是一个项目管理工具。强大,但是很容易使用。
二、Maven的组成
一个项目对象模型 (Project Object Model);
一组标准集合;
一个项目生命周期(Project Lifecycle);
一个依赖管理系统(Dependency Management System);
用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
三、安装Maven
MAVEN_HOME= C:\Program Files (x86)\maven
PATH变量添加 %MAVEN_HOME%\bin;
四、生命周期
生命周期就是一个项目从无到有的整个过程。这个过程里包含了多个阶段(比如创建、编译等,如下图)
清理 clean
初始化 validate
编译 compile
测试 test
打包 package
集成测试 install
验证 verify
部署 deploy
站点生成 site
以上的每个生命周期阶段都可以绑定一个或者多个插件行为,而且Maven为大多数构建步骤编写并绑定了默认插件。
五、坐标
Maven坐标定义了一组标识,它们可以用来唯一标识一个项目,一个依赖,或者Maven POM里的一个插件。
Maven项目坐标的构成元素:groupId, artifactId, version和packaging。
groupId:
团体,公司,小组,组织,项目,或者其它团体的逆向域名。例如:com.weimob
artifactId
表示一个单独项目的唯一标识符。例如:mms-industry
version
一个单独项目的特定版本。例如:1.0.0-SNAPSHOT
六、仓库
在Maven中,构件和插件是在它们被需要的时候从远程的仓库取来的。
Maven自带了一个用来下载Maven核心插件和依赖的远程仓库地址/ http://repo1.maven.org/maven2, 它只包含了几近赤裸的最少值,而在需要的时候再从远程仓库去取。
默认的远程仓库可以被替换,或者增加一个你组织维护的自定义Maven仓库的引用(例如我们自己公司的私服)
七、依赖管理 (Dependency Management)
Maven最强大的特征之一,它支持了传递性依赖(transitive dependencies)。假如你的项目依赖于一个库,而这个库又依赖于五个或者十个其它的库(就像Spring或者Hibernate那样)。
Maven也提供了不同的依赖范围。
- scope 默认
- test : 无法被编译进classpath中
- provided: 告诉诉Maven一个依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中
附:一个带spring的简单pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.huangyian</groupId>
<artifactId>firstmaven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
</dependencies>
</project>