Maven 命令与生命周期

本文最后更新于:2024年9月8日 晚上

Maven 命令与生命周期

命令

clean

  • 清理项目生产的临时文件,一般是模块下的target目录。
1
mvn clean

compile

  • 编译源代码,一般编译模块下的src/main/java目录。
1
mvn compile

test

  • 测试命令,会执行src/test/java/下junit的测试用例。
1
mvn test

package

  • 项目打包工具,会在模块下的target目录生成jar或war等文件。
1
mvn package

install

  • 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用。
1
mvn install

deploy

  • 将打包的文件发布到远程参考,提供其他人员进行下载依赖。
1
mvn deploy

site

  • 生成项目相关信息的网站。
1
mvn site

dependency

  • 打印出项目的整个依赖树。
1
mvn dependency:tree

archetype

  • 创建Maven的普通java项目。
1
mvn archetype:generate

tomcat

  • 在tomcat容器中运行web应用。
1
mvn tomcat:run

命令参数

  • -h,–help:Display help information
  • -am,–also-make:构建指定模块,同时构建指定模块依赖的其他模块。
  • -amd,–also-make-dependents:构建指定模块,同时构建依赖于指定模块的其他模块。
  • -B,–batch-mode:以批处理(batch)模式运行。
  • -C,–strict-checksums:检查不通过,则构建失败;(严格检查)
  • -c,–lax-checksums:检查不通过,则警告;(宽松检查)
  • -D,–define :Define a system property
  • -e,–errors:显示详细错误信息。
  • -emp,–encrypt-master-password :Encrypt master security password
  • -ep,–encrypt-password :Encrypt server password
  • -f,–file :使用指定的POM文件替换当前POM文件。
  • -fae,–fail-at-end:最后失败模式:Maven会在构建最后失败(停止),如果Maven refactor中一个失败了,Maven会继续构建其它项目,并在构建最后报告失败。
  • -ff,–fail-fast:最快失败模式:多模块构建时,遇到第一个失败的构建时停止。
  • -fn,–fail-never:从不失败模式:Maven从来不会为一个失败停止,也不会报告失败。
  • -gs,–global-settings :替换全局级别settings.xml文件(Alternate path for the global settings file)
  • -l,–log-file :指定输出日志文件。
  • -N,–non-recursive:仅构建当前模块,而不构建子模块(即关闭Reactor功能)
  • -nsu,–no-snapshot-updates:强制不更新SNAPSHOT(Suppress SNAPSHOT updates)
  • -U,–update-snapshots:强制更新releases,snapshots类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
  • -o,–offline:运行offline模式,不联网进行依赖更新。
  • -P,–activate-profiles :激活指定的profile文件列表(用逗号[,]隔开)
  • -pl,–projects ":手动选择需要构建的项目,项目间以逗号分隔;A project can be specified by [groupId]:artifactId or by its relative path.
  • -q,–quiet:安静模式,只输出ERROR
  • -rf,–resume-from :从指定的项目(或模块)开始继续构建。
  • -s,–settings :替换用户级别settings.xml文件(Alternate path for the user settings file)
  • -T,–threads :Thread count, for instance 2.0C where C is core multiplied
  • -t,–toolchains :Alternate path for the user toolchains file
  • -V,–show-version:Display version information WITHOUT stopping build
  • -v,–version:Display version information
  • -X,–debug:输出详细信息,debug模式。

生命周期

Maven的生命周期

  • Maven有三套生命周期,分别是clean,default,site,每个生命周期都包含了一些阶段(phase)
  • 三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase,执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase
  • clean的生命周期
    • pre-clean:执行清理前的工作。
    • clean:清理上一次构建生成的所有文件。
    • post-clean:执行清理后的工作。
  • default的生命周期:default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤。
    • validate
    • initialize
    • generate-sources
    • process-sources
    • generate-resources
    • process-resources:复制和处理资源文件到target目录,准备打包。
    • compile:编译项目的源代码。
    • process-classes
    • generate-test-sources
    • process-test-sources
    • generate-test-resources
    • process-test-resources
    • test-compile:编译测试源代码。
    • process-test-classes
    • test:运行测试代码。
    • prepare-package
    • package:打包成jar或者war或者其他格式的分发包。
    • pre-integration-test
    • integration-test
    • post-integration-test
    • verify
    • install:将打好的包安装到本地仓库,供其他项目使用。
    • deploy:将打好的包安装到远程仓库,供其他项目使用。
  • site的生命周期
    • pre-site
    • site:生成项目的站点文档。
    • post-site
    • site-deploy:发布生成的站点文档。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!