Maven 常用命令

Maven 命令遵循以下模式:

mvn [选项] [生命周期阶段] [目标]

检查 Maven 版本

实例

mvn -v

这个命令会显示已安装的 Maven 版本、Java 版本等信息。


Maven 生命周期命令

Maven 基于构建生命周期的概念,包含三个主要的生命周期:

  1. clean:清理项目
  2. default (build):项目构建
  3. 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/目录clean
mvn validate验证项目是否正确validate
mvn compile编译主源代码compile
mvn test-compile编译测试代码test-compile
mvn test运行单元测试test
mvn package打包项目package
mvn verify运行集成测试verify
mvn install安装到本地仓库install
mvn 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查看最终生效的POM
mvn 插件前缀:目标直接运行插件目标
# 查看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"