Maven 常用命令
Maven 命令遵循以下模式:
mvn [选项] [生命周期阶段] [目标]
检查 Maven 版本
实例
mvn -v
这个命令会显示已安装的 Maven 版本、Java 版本等信息。
Maven 生命周期命令
Maven 基于构建生命周期的概念,包含三个主要的生命周期:
clean:清理项目
default (build):项目构建
site:生成项目文档
清理项目
实例
mvn clean
这个命令会删除 target 目录,即删除所有构建生成的文件。
编译项目
实例
mvn compile
编译源代码,编译后的 class 文件会放在 target/classes 目录下。
运行测试
实例
mvn test
运行项目中的所有测试用例。
打包项目
实例
mvn package
根据 POM 文件中指定的打包类型(如 jar、war)打包项目。
安装到本地仓库
实例
mvn install
将项目构建并安装到本地 Maven 仓库,供其他项目依赖使用。
部署到远程仓库
实例
mvn deploy
将最终的项目包复制到远程仓库,供其他开发人员和项目使用。
依赖管理命令
查看项目依赖树
实例
mvn dependency:tree
显示项目的依赖树,有助于分析依赖关系和解决依赖冲突。
下载源代码
实例
mvn dependency:sources
下载项目依赖的源代码。
分析依赖
实例
mvn dependency:analyze
分析项目中使用但未声明的依赖,以及声明但未使用的依赖。
项目创建命令
创建简单项目
实例
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
使用 Maven 原型系统创建一个简单的 Java 项目。
创建 Web 项目
实例
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
创建一个简单的 Web 应用程序项目。
其他实用命令
跳过测试
实例
mvn install -DskipTests
构建项目并安装到本地仓库,但跳过测试阶段。
运行特定测试
实例
mvn test -Dtest=TestClassName
只运行指定的测试类。
实例
mvn test -Dtest=TestClassName#testMethodName
只运行指定测试类中的特定测试方法。
更新依赖
实例
mvn versions:display-dependency-updates
检查项目中哪些依赖有更新的版本可用。
生成站点文档
实例
mvn site
生成项目的站点文档,包括各种报告。
运行特定阶段
实例
mvn clean package
先执行 clean 生命周期,然后执行 default 生命周期到 package 阶段。
Maven 命令组合使用
Maven 命令可以组合使用以提高效率:
实例
mvn clean install
先清理项目,然后编译、测试并安装到本地仓库。
实例
mvn clean package -DskipTests
清理项目,打包但不运行测试。
常见问题解决
强制更新快照依赖
实例
mvn clean install -U
-U 参数强制 Maven 检查远程仓库中依赖的更新版本。
离线模式
实例
mvn -o package
-o 参数让 Maven 在离线模式下运行,只使用本地仓库中的依赖。
调试模式
实例
mvn -X clean install
-X 参数启用调试输出,显示详细的执行信息。
基础构建命令
命令作用执行的生命周期阶段mvn clean删除target/目录cleanmvn validate验证项目是否正确validatemvn compile编译主源代码compilemvn test-compile编译测试代码test-compilemvn test运行单元测试testmvn package打包项目packagemvn verify运行集成测试verifymvn install安装到本地仓库installmvn deploy部署到远程仓库deploy
典型开发流程:
mvn clean compile test package
依赖管理命令
命令作用mvn dependency:tree显示依赖树mvn dependency:analyze分析依赖问题mvn dependency:copy-dependencies复制依赖到目录mvn dependency:purge-local-repository清除本地依赖缓存mvn versions:display-dependency-updates检查依赖更新
# 查看依赖树
mvn dependency:tree
# 检查可用更新
mvn versions:display-dependency-updates
插件相关命令命令作用mvn help:describe -Dplugin=插件名查看插件信息mvn help:effective-pom查看最终生效的POMmvn 插件前缀:目标直接运行插件目标
# 查看compiler插件信息
mvn help:describe -Dplugin=compiler
# 直接运行compiler插件的compile目标
mvn compiler:compile
测试相关命令
命令作用mvn test运行所有测试mvn -Dtest=测试类名 test运行指定测试类mvn -Dtest=测试类名#方法名 test运行指定测试方法mvn -DskipTests=true package跳过测试
# 只运行UserServiceTest类
mvn -Dtest=UserServiceTest test
# 只运行UserServiceTest中的testCreate方法
mvn -Dtest=UserServiceTest#testCreate test
多模块项目命令命令作用mvn -pl 模块名 命令对指定模块执行命令mvn -am -pl 模块名 命令执行命令并处理依赖模块mvn -rf 模块名 命令从指定模块继续执行
# 只编译service模块
mvn -pl service compile
# 编译web模块及其依赖的模块
mvn -am -pl web compile
高级用法命令作用mvn -T 4 install使用4个线程并行构建mvn -o package离线模式运行mvn -X clean install开启调试输出mvn -U clean install强制更新snapshot依赖mvn release:prepare准备项目发布mvn release:perform执行项目发布# 并行构建(4线程)
mvn -T 4 clean install
# 强制更新snapshot依赖
mvn -U clean install
常用命令组合组合命令作用mvn clean install清理后重新安装mvn clean package -DskipTests清理后打包并跳过测试mvn clean test清理后运行测试mvn clean deploy清理后部署
实用技巧
快速查看项目信息:
mvn help:effective-pom
mvn help:describe -Dcmd=compile
调试构建问题:
mvn -X clean install
跳过检查:
mvn install -Dcheckstyle.skip=true -Dpmd.skip=true
指定配置文件:
mvn install -P production
查看构建时间:
mvn install --batch-mode | grep "Total time"