Maven命令
Maven包含一系列可以执行的命令。 Maven命令是构建生命周期,构建阶段和构建目标的混合体,因此可能会有些混乱。因此,我将在本教程中描述常见的Maven命令,并说明它们正在执行的构建生命周期,构建阶段和构建目标。
Maven命令结构
Maven命令包含两个元素:
mvn
- 一个或者多个构建生命周期,构建阶段或者目标
这是一个Maven命令示例:
mvn clean
该命令由执行Maven的mvn命令和名为clean的构建生命周期组成。
这是另一个Maven命令示例:
mvn clean install
这个maven命令执行" clean"构建生命周期,并在" default"构建生命周期中执行" install"构建阶段。
我们可能想知道如何看待构建生命周期,构建阶段和构建目标之间的差异。我待会儿再讲。
建立生命周期,阶段和目标
正如在有关构建生命周期,构建阶段和构建目标的部分的引言中所述,Maven包含三个主要的构建生命周期:
clean
default
site
在每个构建生命周期内都有构建阶段,在每个构建阶段内都有构建目标。
我们可以执行构建生命周期,构建阶段或者构建目标。在执行构建生命周期时,我们将执行该构建生命周期内的所有构建阶段(从而建立目标)。
在执行构建阶段时,我们将执行该构建阶段中的所有构建目标。 Maven还会在所需构建阶段的构建生命周期中更早地执行所有构建阶段。
潜在目标分配给一个或者多个潜在阶段。当执行构建阶段时,该构建阶段中的所有目标也将执行。我们也可以直接执行构建目标。
执行构建生命周期,阶段和目标
当我们运行mvn
命令时,我们将传递一个或者多个参数。这些参数指定了构建生命周期,构建阶段或者构建目标。例如,要执行" clean"构建生命周期,我们可以执行以下命令:
mvn clean
要执行site
构建生命周期,请执行以下命令:
mvn site
执行默认生命周期
" default"生命周期是生成,编译,打包等源代码的构建生命周期。
我们不能直接执行"默认"构建生命周期,就像使用"清理"和"站点"可能的那样。相反,我们必须在"默认"构建生命周期内执行特定的构建阶段。
在" default"构建生命周期中最常用的构建阶段是:
构建阶段 | 描述 |
validate | 验证项目正确,并且所有必要的信息均可用。这也确保了依赖项已下载。 |
compile | 编译项目的源代码。 |
test | 使用适当的单元测试框架针对已编译的源代码运行测试。这些测试不应要求将代码打包或者部署。 |
package | 以可分发格式(例如JAR)打包已编译的代码。 |
install | 将软件包安装到本地存储库中,以作为本地其他项目中的依赖项。 |
deploy | 将最终程序包复制到远程存储库,以便与其他开发人员和项目共享。 |
通过简单地在mvn
命令之后添加构建阶段,就可以执行这些构建阶段之一,如下所示:
mvn compile
这个示例Maven命令执行"默认"构建生命周期的"编译"构建阶段。这个Maven命令还将在"默认"构建生命周期中执行所有较早的构建阶段,即"验证"构建阶段。
执行构建阶段
我们可以通过将构建阶段的名称传递给Maven命令来执行位于构建生命周期内的构建阶段。以下是一些构建阶段命令示例:
mvn pre-clean mvn compile mvn package
Maven将找出指定的构建阶段属于哪个构建生命周期,因此我们无需显式指定该构建阶段属于哪个构建生命周期。
常见的Maven命令
这是Maven常用命令的列表以及它们的作用说明:
Maven命令 | 描述 |
mvn clean | 清除Maven通常其中构建项目的target 目录。 |
mvn package | 构建项目并将生成的JAR文件打包到target 目录中。 |
mvn package -Dmaven.test.skip = true | 生成项目并将生成的JAR文件打包到目标目录中-无需在生成过程中运行单元测试。 |
mvn install | 构建Maven POM文件描述的项目,并将结果工件(JAR)安装到本地Maven存储库 |