在IDEA工具中常见的一些Maven操作<第六课>(二)

简介: 在IDEA工具中常见的一些Maven操作<第六课>(二)

第五部分 Maven的生命周期

1.什么是Maven的生命周期

Maven的生命周期是一个抽象的概念,并不具体指某个操作,是Maven经过长时间思考和分析后总结出来的。它包括了一个项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等一系列的构建流程。


但它仅仅是抽象而已,并不执行具体操作,它的具体操作是交给Maven的各种插件来实现,所以说生命周期和插件是密不可分的。

2.Maven生命周期详解

Maven的生命周期并不像我们所想的是一条线,它实际上有3套相互独立的生命周期,分别是:clean、default和site。


通常clean生命周期的目的是清理项目上一次构建的生成物,default生命周期的目的是构建项目,site生命周期的目的是建立项目站点(这个很少用到)。


而这三套生命周期,又各自都有一些不同的阶段(phase),这些阶段就是生命周期中最细化的操作,当然它仍然是抽象概念,具体操作是给插件做的。


下面具体的说明这3个生命周期的各个阶段,注意是有顺序的,各个阶段之间的顺序也是如下的顺序

3 clean生命周期:

pre-clean:执行清理前的准备工作

clean:清理上一次构建生成的所有文件

post-clean:执行清理后需要完成的工作

clean的生命周期的目的仅是清理项目,核心是clean阶段

4 default生命周期

validate:验证工程是否正确,所有需要的资源是否可用。


initialize:初始化构建状态,例如设置属性或创建目录。


generate-sources:生成包含在编译中的任何源代码。


process-sources:对源代码进行处理,例如过滤任何值。


generate-resources:生成要包含在所述包中的资源。


process-resources:将资源复制到目标目录(target目录)中并进行处理,准备打包。


compile:编译项目的源代码


process-classes:后处理编译生成的文件,例如对Java类进行字节码增强。


generate-test-sources:生成包含在编译中的任何测试源代码。


process-test-sources:对测试源代码进行处理,例如过滤任何值。


generate-test-resources:创建测试资源。


process-test-resources:将资源复制到测试目标目录中并进行处理。


test-compile:将测试源代码编译到测试目标目录。


process-test-classes:后处理测试编译生成的文件,例如对Java类进行字节码增强。


test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。


prepare-package:执行打包前的准备工作。


package:打包,把已编译的代码打包成可发布的格式,比如jar。


pre-integration-test:执行集成测试前所需的操作。这可能涉及诸如设置所需环境之类的事情。


integration-test:处理软件包,并在必要时部署到可以运行集成测试的环境中。


post-integration-test:执行集成测试后所需的操作。这可能包括清理环境。


verify:运行任何检查以验证包是否有效并符合质量标准。


install:将打好的包安装到本地仓库,供其他项目使用。


deploy:将打好的包安装到远程仓库,供其他项目使用。


default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤,虽然看起来很多很杂,但是几个常用的阶段我们也能一眼就认出来:complile、test、package、install。


而且在compile前后的几个阶段,明显和后面test-compile的几个阶段是类似的。基本上我们也不用全都记住,记一下常用的几个阶段就好了,这样还是挺好理解的。

5 site生命周期

的目的是建立和发布项目站点,maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。

Clean操作

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\maven-workspace\spaceVideo\com.java.springboot -Dmaven.home=D:\softwhy\apache-maven-3.6.3 -Dclassworlds.conf=D:\softwhy\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=57845:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1.2 -s D:\softwhy\apache-maven-3.6.3\conf\settings.xml -Dmaven.repo.local=D:\maven_repository clean
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] com.java.springboot                                                [pom]
[INFO] prom-springbootweb-maven                                           [jar]
[INFO] 
[INFO] -------------------< hellowoeld:com.java.springboot >-------------------
[INFO] Building com.java.springboot 1.0-SNAPSHOT                          [1/2]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ com.java.springboot ---
[INFO] Deleting D:\maven-workspace\spaceVideo\com.java.springboot\target
[INFO] 
[INFO] ----------------< hellowoeld:prom-springbootweb-maven >-----------------
[INFO] Building prom-springbootweb-maven 1.0-SNAPSHOT                     [2/2]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ prom-springbootweb-maven ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for com.java.springboot 1.0-SNAPSHOT:
[INFO] 
[INFO] com.java.springboot ................................ SUCCESS [  0.584 s]
[INFO] prom-springbootweb-maven ........................... SUCCESS [  0.000 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.053 s
[INFO] Finished at: 2022-09-03T21:26:11+08:00
[INFO] ------------------------------------------------------------------------

validate操作

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\maven-workspace\spaceVideo\com.java.springboot -Dmaven.home=D:\softwhy\apache-maven-3.6.3 -Dclassworlds.conf=D:\softwhy\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=57866:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1.2 -s D:\softwhy\apache-maven-3.6.3\conf\settings.xml -Dmaven.repo.local=D:\maven_repository validate
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] com.java.springboot                                                [pom]
[INFO] prom-springbootweb-maven                                           [jar]
[INFO] 
[INFO] -------------------< hellowoeld:com.java.springboot >-------------------
[INFO] Building com.java.springboot 1.0-SNAPSHOT                          [1/2]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] ----------------< hellowoeld:prom-springbootweb-maven >-----------------
[INFO] Building prom-springbootweb-maven 1.0-SNAPSHOT                     [2/2]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for com.java.springboot 1.0-SNAPSHOT:
[INFO] 
[INFO] com.java.springboot ................................ SUCCESS [  0.000 s]
[INFO] prom-springbootweb-maven ........................... SUCCESS [  0.015 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.307 s
[INFO] Finished at: 2022-09-03T21:26:54+08:00
[INFO] ------------------------------------------------------------------------

Compile操作

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\maven-workspace\spaceVideo\com.java.springboot -Dmaven.home=D:\softwhy\apache-maven-3.6.3 -Dclassworlds.conf=D:\softwhy\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=57913:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1.2 -s D:\softwhy\apache-maven-3.6.3\conf\settings.xml -Dmaven.repo.local=D:\maven_repository compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] com.java.springboot                                                [pom]
[INFO] prom-springbootweb-maven                                           [jar]
[INFO] 
[INFO] -------------------< hellowoeld:com.java.springboot >-------------------
[INFO] Building com.java.springboot 1.0-SNAPSHOT                          [1/2]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] ----------------< hellowoeld:prom-springbootweb-maven >-----------------
[INFO] Building prom-springbootweb-maven 1.0-SNAPSHOT                     [2/2]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ prom-springbootweb-maven ---

Test操作

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\maven-workspace\spaceVideo\com.java.springboot -Dmaven.home=D:\softwhy\apache-maven-3.6.3 -Dclassworlds.conf=D:\softwhy\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=57942:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1.2 -s D:\softwhy\apache-maven-3.6.3\conf\settings.xml -Dmaven.repo.local=D:\maven_repository test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] com.java.springboot                                                [pom]
[INFO] prom-springbootweb-maven                                           [jar]
[INFO] 
[INFO] -------------------< hellowoeld:com.java.springboot >-------------------
[INFO] Building com.java.springboot 1.0-SNAPSHOT                          [1/2]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] ----------------< hellowoeld:prom-springbootweb-maven >-----------------
[INFO] Building prom-springbootweb-maven 1.0-SNAPSHOT                     [2/2]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ prom-springbootweb-maven ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 0 resource
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ prom-springbootweb-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ prom-springbootweb-maven ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory D:\maven-workspace\spaceVideo\com.java.springboot\prom-springbootweb-maven\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ prom-springbootweb-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ prom-springbootweb-maven ---
[INFO] No tests to run.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for com.java.springboot 1.0-SNAPSHOT:
[INFO] 
[INFO] com.java.springboot ................................ SUCCESS [  0.000 s]
[INFO] prom-springbootweb-maven ........................... SUCCESS [  2.938 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.231 s
[INFO] Finished at: 2022-09-03T21:29:02+08:00
[INFO] ------------------------------------------------------------------------

Package操作

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\maven-workspace\spaceVideo\com.java.springboot -Dmaven.home=D:\softwhy\apache-maven-3.6.3 -Dclassworlds.conf=D:\softwhy\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=57978:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;D:\softwhy\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1.2 -s D:\softwhy\apache-maven-3.6.3\conf\settings.xml -Dmaven.repo.local=D:\maven_repository package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] com.java.springboot                                                [pom]
[INFO] prom-springbootweb-maven                                           [jar]
[INFO] 
[INFO] -------------------< hellowoeld:com.java.springboot >-------------------
[INFO] Building com.java.springboot 1.0-SNAPSHOT                          [1/2]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] ----------------< hellowoeld:prom-springbootweb-maven >-----------------
[INFO] Building prom-springbootweb-maven 1.0-SNAPSHOT                     [2/2]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ prom-springbootweb-maven ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 0 resource
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ prom-springbootweb-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ prom-springbootweb-maven ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory D:\maven-workspace\spaceVideo\com.java.springboot\prom-springbootweb-maven\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ prom-springbootweb-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ prom-springbootweb-maven ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.2.2:jar (default-jar) @ prom-springbootweb-maven ---
[INFO] Building jar: D:\maven-workspace\spaceVideo\com.java.springboot\prom-springbootweb-maven\target\prom-springbootweb-maven-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for com.java.springboot 1.0-SNAPSHOT:
[INFO] 
[INFO] com.java.springboot ................................ SUCCESS [  0.000 s]
[INFO] prom-springbootweb-maven ........................... SUCCESS [  3.234 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.515 s
[INFO] Finished at: 2022-09-03T21:30:08+08:00
[INFO] ------------------------------------------------------------------------



相关文章
|
5月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
210 1
|
3月前
|
Java Maven Kotlin
idea maven创建kotlin项目
本文介绍了在IntelliJ IDEA中使用Maven创建Kotlin项目的步骤,包括在`pom.xml`文件中添加Maven中央仓库、配置`kotlin-maven-plugin`插件、指定源目录、添加测试插件和执行插件,以及添加Kotlin测试依赖和标准库依赖。文中还提到了如何通过更换镜像或使用代理来解决依赖下载速度慢的问题,并展示了运行示例代码的截图。
163 4
idea maven创建kotlin项目
|
3月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
133 1
|
3月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
200 2
|
3月前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
520 1
|
3月前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
1521 1
|
3月前
|
Java Devops 持续交付
Maven学习笔记(二):Maven基础(基于IDEA)
【10月更文挑战第1天】Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。上一篇简单介绍了Maven的基础知识,本文主要介绍IDEA上的实际使用场景。内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。仅供参考。
198 0
Maven学习笔记(二):Maven基础(基于IDEA)
|
3月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
253 0
idea+maven+tomcat+spring 创建一个jsp项目
|
3月前
|
Java Maven
震惊!idea专业版如何配置maven国内源手把手教学
文章提供了如何在IDEA专业版中配置Maven使用国内源(如阿里云)的详细步骤,以加快依赖下载速度,并解释了配置国内源的原因。
753 0
震惊!idea专业版如何配置maven国内源手把手教学
|
4月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决

推荐镜像

更多