1.什么是maven
官方说法是:一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
说人话就是:
1.帮你管理jar包
2.帮你编译
3.帮你做单元测试
4.打包项目
…………
2.maven生命周期
- CleanLifecycle :编译前的清理工作
- DefaultLifecycle :编译、测试、打包、部署
- SiteLifecycle :生成项目报表等
3.maven插件
maven本质上就是个插件的框架,它不做任何事,所有事都是交给插件来做。
4.仓库
maven有两个仓库,一个是本地仓库,一个是远程仓库。用来管理jar包
5.pom.xml
5.1 基本设置
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<packaging>war</packaging>
</project>
groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录
artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录
version : 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录
packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar 等
5.2 POM之间的关系
a) 依赖关系: dependency list
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
…
</dependencies>
b) 继承关系
c) 聚合关系:将多个maven项目聚合为一个大的项目
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
<modules>
<module>my-project<module>
</modules>
</project>
5.3 其他东西
1.jar包版本统一
<properties>
<log4j.version>1.6.5</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-apache-log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>