Maven命令

时间:2020-01-09 10:36:51  来源:igfitidea点击:

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存储库