Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。

目录结构

a-maven-project
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── target

项目描述文件pom.xml

groupId类似于Java的包名,通常是公司或组织名称,artifactId类似于Java的类名,通常是项目名称,再加上version,一个Maven工程就是由groupIdartifactIdversion作为唯一标识。

使用<dependency>声明一个依赖后,Maven就会自动下载这个依赖包并把它放到classpath中。

Maven定义了几种依赖关系,分别是compiletestruntimeprovided

Lifecycle和Phase

使用mvn这个命令时,后面的参数是phase,Maven自动根据生命周期运行到指定的phase。

mvn clean:清理所有生成的class和jar;

mvn clean compile:先清理,再执行到compile

mvn clean test:先清理,再执行到test,因为执行test前必须执行compile,所以这里不必指定compile

mvn clean package:先清理,再执行到package

经常用到的phase其实只有几个: