- 生命周期命令简介
- 命令详解
- test
- package
- 命令演示
- verify
- install
- 将当前项目放到 Maven 的本地仓库中,供其他项目使用
- 将自己打包或者下载的 jar/war 文件复制到本地仓库中,供其他模块使用
- site
- deploy
在 Maven 中,项目构建都是有生命周期的,每个项目拥有三套独立的生命周期,而每套生命周期又包含多个阶段,这些阶段在执行的时候是有固定顺序的,后面的阶段一定要等前面的阶段执行完成后才能被执行。每个阶段都对应着一个执行指令,也叫生命周期命令。所以执行某个生命周期阶段指令时,会将该指令所对应的阶段之前的所有阶段都执行完。
比如 clean 生命周期,它就包含 pre-clean、clean 和 post-clean 三个阶段。用户调用 pre-clean 时,只有 pre-clean 阶段被执行;调用 clean 时,先执行 pre-clean,再执行 clean 阶段;同理,当调用 post-clean 时,Maven 自动先执行 pre-clean、再执行 clean,最后执行 post-clean。
再比如,你执行命令 mvn install
,其实就是执行到生命周期中的 install 阶段,那么会将之前的生命周期阶段按顺序完成,所以执行 mvn install
就包含了:构件的验证、初始化、源文件编译、资源文件的处理、测试、打包、集成测试等阶段的执行任务。具体执行的阶段如下:
validate initialize generate-sources process-sources generate-resources process-resources compile process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile process-test-classes test prepare-package package pre-integration-test integration-test post-integration-test verify install
生命周期详解参阅《Maven项目的生命周期》。
命令详解 test执行 src/test/java/ 下的junit的测试用例
执行命令如下:
mvn test
执行生命周期阶段 test,底层会去调用绑定的插件来完成测试任务,test 阶段默认会执行什么插件,可以配置。
执行具体指定的测试方法:
mvn test -Dtest=EmployeeDAOJdbcImplTest#testFindAll;
注意:等号 =
前后不允许出现空格。
执行具体指定的测试用例:
mvn test -Dtest=EmployeeDAOJdbcImplTest;
执行多个测试用例可以用逗号分开:
mvn test -Dtest=App2Test,AppTest;
package
将项目打成 war 包或者 jar 包,取决于项目的 pom.xml
中关于项目的打包类型的设置,如下所示:
通过命令终端进入 pom.xml 所在的目录下,然后执行 clear 命令,将目录 target 清除掉:
mvn clear
接着执行打包命令:
mvn package
打包命令执行后,会在项目根目录下自动生成目录文件 target,打开该目录可以看到如下的内容:
打开终端,切换到 pom.xml 所在目录下,执行下面的命令将 ojdbc-10.2.0.4.0.jar 安装到本地的 Maven 仓库中:
mvn install:install-file -Dfile="D:\Program Files\mvn\ojdbc-10.2.0.4.0.jar"
-DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar
jar 包的 GAV 信息可以解压 jar 包查看,也可以通过在线资源搜索网站进行查看,例如:https://mvnrepository.com/。
site在命令终端中,进入 pom.xml 所在的目录(其实就是项目/模块根目录)下,然后执行下面的命令:
[~/documents/IdeaProjects/demo02]$ mvn site
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------------------------------
[INFO] Building demo02 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-site-plugin:3.9.0:site (default-site) @ demo02 ---
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2
[INFO] 15 reports detected for maven-project-info-reports-plugin:3.1.2: ci-management, dependencies, dependency-info, dependency-management, distribution-management, index, issue-management, licenses, mailing-lists, modules, plugin-management, plugins, scm, summary, team
[INFO] Rendering site with default locale English (en)
[WARNING] No project URL defined - decoration links will not be relativized!
[INFO] Rendering content with org.apache.maven.skins:maven-default-skin:jar:1.3 skin.
[INFO] Generating "Dependencies" report --- maven-project-info-reports-plugin:3.1.2:dependencies
[INFO] Generating "Dependency Information" report --- maven-project-info-reports-plugin:3.1.2:dependency-info
[INFO] Generating "Distribution Management" report --- maven-project-info-reports-plugin:3.1.2:distribution-management
[INFO] Generating "About" report --- maven-project-info-reports-plugin:3.1.2:index
[INFO] Generating "Plugin Management" report --- maven-project-info-reports-plugin:3.1.2:plugin-management
[INFO] Generating "Plugins" report --- maven-project-info-reports-plugin:3.1.2:plugins
[INFO] Generating "Summary" report --- maven-project-info-reports-plugin:3.1.2:summary
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.732 s
[INFO] Finished at: 2022-01-25T21:47:41+08:00
[INFO] ------------------------------------------------------------------------
构建项目说明的站点,构建成功后,你可以在 target 目录下看到如下两个目录文件:
执行这个命令需要以下两个插件:
将打包的工件发布到远程的服务器,供其他人员下载使用。 将最终版本的包拷贝到远程的 repository,使得其他的开发者或者工程可以共享。