Maven 构建命令
Maven 构建命令
- 1 Maven 构建命令
- 1.1 mvn clean 清除命令
- 1.2 mvn compile 编译项目文件命令
- 1.3 mvn test-compile:编译测试文件命令
- 1.4 mvn test:执行测试,生成测试报告
- 1.5 mvn package:打包
- 1.6 mvn install:安装
- 1.7 mvn deploy 将构建好的 JAR/WAR 部署到 远程 Maven 仓库
- 2 其它Maven命令
- 2.1 查看依赖树
- 2.2 mvn clean install -U
- 2.3 跳过测试 mvn clean package -DskipTest
- 2.4 运行单个测试
1 Maven 构建命令
1.1 mvn clean 清除命令
- 执行过程:
- 删除当前工程中的target文件夹
- 适用场景:
在重新构建项目之前,避免旧的编译文件影响新版本。- 示例
# 清理 、打包
mvn clean package
1.2 mvn compile 编译项目文件命令
- 执行过程:
- 将 src/main/java文件夹下的resources中所有文件都拷贝到target/classes/文件夹里
- 编译当前工程的src/main/java文件夹里的所有java文件,将生成的.class文件放入当前工程的target/classes/文件夹里
- 适用场景:
当需要仅编译代码而不执行测试时。
1.3 mvn test-compile:编译测试文件命令
- 执行过程:
- 执行mvn compile
- 将test文件夹下的resources中所有文件都拷贝到target文件夹里
- 编译当前工程的test文件夹里的所有java文件,将生成的.class文件放入当前工程的target文件夹里。
1.4 mvn test:执行测试,生成测试报告
- 执行过程:
- 执行mvn test-compile
- 运行生成的.class文件,执行测试类中所有的测试方法,生成测试报告,将测试报告放进target\surefire-reports文件夹里。
- 适用场景:
运行项目中的单元测试,确保代码逻辑正确
1.5 mvn package:打包
- 执行过程:
- 执行mvn test
- 如果测试没有问题,将main下所有java文件生成的所有class文件打包成jar或war,放入target文件夹里
- 适用场景:
当需要生成可部署的 JAR/WAR 文件时。
1.6 mvn install:安装
- 执行过程:
- 执行mvn package
- 把生成的jar/war包放入本地仓库
1.7 mvn deploy 将构建好的 JAR/WAR 部署到 远程 Maven 仓库
- 执行过程:
- 先执行 mvn install
- 上传 target/ 目录中的 JAR/WAR 文件到远程 Maven 仓库
- 适用场景:
当开发的库需要在团队内部共享时,可以部署到私有仓库(如 Nexus)
2 其它Maven命令
2.1 查看依赖树
作用:列出所有项目依赖,包括传递性依赖,帮助分析依赖冲突。
mvn dependency:tree
[INFO] com.example:my-app:jar:1.0-SNAPSHOT
[INFO] ├─ org.springframework:spring-core:jar:5.3.9:compile
[INFO] ├─ commons-logging:commons-logging:jar:1.2:compile
2.2 mvn clean install -U
这个命令实际上结合了三个 Maven 命令:clean、install 和 -U(更新快照)。
- -U 或 --update-snapshots
- 作用:强制检查所有依赖的最新版本(包括 SNAPSHOT 版本)。
- 使用场景:
当项目依赖了 SNAPSHOT 版本的依赖,且这些依赖可能经常更新时。
当你怀疑有新的依赖版本可用,但 Maven 没有自动检测到这些更新
当执行 mvn clean install -U 命令时,Maven 将按以下顺序执行:
- 清理阶段(clean):删除 target 目录,清理之前的构建结果。
- 默认生命周期:执行项目的默认生命周期阶段,包括编译(compile)、测试(test)和打包(package)等。
- 安装(install):将打包好的项目安装到本地仓库。
- 更新快照(-U):检查并更新所有 SNAPSHOT 依赖。
2.3 跳过测试 mvn clean package -DskipTest
作用:构建时跳过单元测试,提高构建速度。
mvn clean package -DskipTest
2.4 运行单个测试
作用:只运行指定的测试类,而不是运行所有测试。
mvn test -Dtest=MyTestClass