Maven 基础命令与生命周期

版权声明:欢迎转载,转载请说明出处. 大数据Github项目地址https://github.com/SeanYanxml/bigdata。 https://blog.csdn.net/u010416101/article/details/88428868

前言

前面几章,我们介绍了Maven的安装和使用方法.本章开始,我们介绍下,如何使用Maven来完成我们需要的打包操作.


基本命令

本章我们继续使用maven-train-parent-util项目进行演示.Maven基本的操作命令主要有:

  • mvn clean
    清除依赖的Jar包,重新装载
  • mvn package
    使用Maven进行打包
  • mvn install
    将该项目部署到本地仓库内
  • mvn build
  • mvn test
    单元测试

生命周期

Maven 的生命周期主要包括三块:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
  • Site Lifecycle 生成项目报告,站点,发布站点。

Clean 周期

  • pre-clean 执行一些需要在clean之前完成的工作
  • clean 移除所有上一次构建生成的文件
  • post-clean 执行一些需要在clean之后立刻完成的工作

Site周期

pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上

Default 周期

了解生命周期对于Maven使用比较重要.Maven的打包周期主要包括如下几个周期

  • process-resources
  • compile 编译
  • process-test-resources 测试
  • test-compile 测试
  • test 测试
  • package 打包
  • install 安装
  • deploy 部署

我们在运行时例如mvn install,其会自动执行前面的process-resources -> install的所以操作.我们有时也会写成mvn package install

但是,有时我们也会跳过某些周期,比如跳过单元测试mvn package -Dmaven.test.skip=truemvn package -DskipTests

  • 尝鲜(mvn package)
localhost:maven-train-parent-util Sean$ mvn package
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-train-parent-util 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-train-parent-util ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-train-parent-util ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-train-parent-util ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ maven-train-parent-util ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-train-parent-util ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-train-parent-util ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.511 s
[INFO] Finished at: 2019-03-12T20:17:02+08:00
[INFO] Final Memory: 10M/155M
[INFO] ------------------------------------------------------------------------

由上述的log我们可以看到,此次的编译经过了default-resources/default-compile/default-testResources/default-testCompile/default-test/default-jar这几个周期.

PS: 如果想看到编译的详细过程可以使用mvn -X package进行查看详细内容.


Reference

[1] maven-train
[2] Maven生命周期详解
[3] (Officical) Introduction to the Build Lifecycle
[4] Maven常用命令
[5] maven跳过单元测试-maven.test.skip和skipTests的区别

没有更多推荐了,返回首页