# 要求

运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在目录,如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的信息

The goal you specified requires a project to execute but there is no PoM in thisdirectory

mvn -v 命令和构建操作无关,只要正确配置了 PATH, 在任何目录下执行都可以

# 清理操作

mvn clean

效果:删除 target 目录

# 编译操作

主程序编译: mvn compile

测试程序编译: mvn test-compile

主体程序编译结果存放目录: target/class

测试程序编译结果存放的目录: target/test-class

# 测试操作

mvn test

测试的报告存放的目录: target/surefilre-reports

# 打包操作

mvn package

打包的结果 --jar 包,存放的目录:target

# 安装操作

mvn install

[INFO] Installing E:\maven\maven-work-space\space01\pro01-maven-java\target\pro01-maven-java-1.0-SNAPSHOT.jar to E:\maven\mavenRepository\com\dkx\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar
[INFO] Installing E:\maven\maven-work-space\space01\pro01-maven-java\pom.xml to E:\maven\mavenRepository\com\dkx\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.pom

安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库,这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的

坐标信息如下:

<!-- 坐标信息 -->
  <!-- groupId 标签:坐标向量之一;代表公司或组织开发的某一个项目 -->
  <groupId>com.dkx.maven</groupId>
  <!-- artifactId 标签:坐标向量之一;代表项目下的某一模块 -->
  <artifactId>pro01-maven-java</artifactId>
  <!-- version 标签:坐标向量之一;代表当前模块的版本 -->
  <version>1.0-SNAPSHOT</version>

在 Maven 仓库中生成的路径如下:

E:\maven\mavenRepository\com\dkx\maven\pro01-maven-java\1.0-SNAPSHOT

另外,安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库,所以我们在 Maven 的本地仓库中想看一个 jar 包原始的 pom.xml 文件时,查看对应 XXX.pom 文件即可,它们是名字发生了改变,本质上是同一个文件