Maven完全指南 - 14. 命令执行

210 阅读3分钟

14. 命令执行

Maven 的命令行执行方式提供了多种用于构建、测试、发布和管理项目的命令。通过命令行,可以控制构建的生命周期、激活特定的配置文件、指定属性等,这使得 Maven 在构建和发布管理中更具灵活性和可操作性。

Maven 命令格式如下:

mvn [options] [phases] [goals] 

命令执行.png

14.1 选项

  • -D:设置属性值,用于覆盖 POM 文件中的属性,或为插件配置传递参数。
  • -P:激活一个或多个配置组,可以指定多个配置组,以逗号分隔。
  • -f:指定 POM 文件的路径,默认路径为 ./pom.xml。
  • -s:指定 settings.xml 的路径,用于覆盖默认的 Maven 设置。
  • -X:启用调试模式,输出更详细的日志信息。
  • -U:强制更新 SNAPSHOT 依赖项,从远程仓库下载最新版本的 SNAPSHOT。
  • -o:离线模式运行,不会下载依赖。
  • -T:设置构建的线程数来并行构建。

示例:

mvn clean install -DskipTests=true
mvn clean install -Pdev,prod
mvn clean install -f /path/to/project/pom.xml
mvn clean install -s /path/to/settings.xml
mvn clean install -X
mvn install -U

14.2 阶段

我们可以在命令行中提供阶段参数,通过生命周期阶段来触发绑定的插件目标的任务执行。生命周期阶段的执行,会触发该阶段的所有前置阶段的执行,因此 Maven 会按照顺序从生命周期的开头阶段依次执行,触发所有绑定的插件目标的执行。

下面是我们常用的一些阶段:

  • mvn validate:验证项目结构是否正确,必要的配置信息是否齐全。
  • mvn compile:编译项目的源代码。
  • mvn test:编译并运行测试代码。
  • mvn package:打包编译后的代码,如生成 JAR 或 WAR 文件。
  • mvn verify:运行任何集成测试,验证项目打包是否正确。
  • mvn install:将打包的构件安装到本地仓库中,以供本地其他项目引用。
  • mvn deploy:将打包的构件发布到远程仓库,以供共享。

我们可以提供多个阶段按序执行,注意这些阶段不应在同一个生命周期。也就是说,我们可以使用 mvn clean install site,它们会按命令行中给定的顺序执行 clean、default、site生命周期中的 clean、install、site 阶段:

  • clean 阶段会触发 pre-clean 和 clean 按序执行,但不会执行 post-clean 阶段。
  • install 阶段会触发 validate、initialize、...、verify、install 这些阶段按序执行,但不会执行 deploy 阶段。
  • site 阶段会触发 pre-site 和 site 按序执行,但不会执行 post-site 和 site-deploy 阶段。

14.3 目标

除了通过生命周期来触发执行的话,我们还可以直接指定插件目标执行具体的任务。这样的话,即使插件目标没有绑定到生命周期阶段,我们也可以指定其执行以进行更为细粒度的操作。

例如:

  • mvn dependency:resolve:解析项目的依赖项并下载到本地仓库。
  • mvn dependency:tree:显示项目中的直接和传递性依赖,帮助开发者了解每个依赖项是如何引入的。
  • mvn help:effective-pom:输出当前项目的 pom.xml 的有效内容,包括父项目的继承和聚合。
  • mvn help:effective-settings:查看 Maven 的 settings.xml 的有效配置。