maven简介
一、maven 的用途和目录结构
- Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理
- maven 项目的目录结构如下:
二、maven 的安装配置和 POM
1、maven 的安装配置
- 下载压缩包后解压即可,需要在命令行中使用的话,需要在系统的环境变量中配置(bin 目录配置到 path 变量);
- 和 IDE 集成:idea 自带 maven 的相关功能,低版本 eclipse 需要手动安装 maven 插件,高版本则集成了 maven 插件,可以直接使用;
2、POM(项目对象模型)
- maven 是基于项目对象模型的,maven 工程的核心配置文件是一个名为 pom 的 xml 文件,maven 根据其中的配置进行项目的构建和管理;
- pom xml 文件中可以配置:项目依赖、插件、执行目标、项目构建 profile、项目版本、项目开发者列表和相关邮件列表信息等;
- super POM 的概念:就是 maven 的默认配置,所有的 pom 都会继承这个 pom,可以使用以下命令来查看 Super POM 默认配置:mvn help:effective-pom;
三、maven 的生命周期clean 、 build 、 cite
1、clean 生命周期:项目清理的处理
- pre-clean:执行一些需要在clean之前完成的工作;
- clean:移除所有上一次构建生成的文件,target 目录下的所有文件会被删除;
- post-clean:执行一些需要在clean之后立刻完成的工作;
注意:调用其中的任何一个命令最后都是执行这个命令及其之前的命令,这个的前提是在同样的大的生命周期内
2、build 生命周期:项目部署的处理
- 大致的生命周期是这样的(细分的话应该有 23 个阶段)
补充说明
- 添加 maven-antrun-plugin 插件可以在 maven 执行的各个阶段附加执行一些额外的任务
- 要执行 deploy 的话需要在 distributionManagement 里指定部署的位置
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>validate phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>compile phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>test phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>package phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>deploy</id>
<phase>deploy</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>deploy phase</echo>
</tasks>
</configuration>
</execution