linuxmaven命令详解
linuxmaven命令详解详细介绍
在 Linux 系统中,Maven 是一个强大的项目管理和构建工具,广泛用于 Java 项目。以下是常用的 Maven 命令及其详解:
一、基础命令
1. 查看 Maven 版本
bash
mvn 或 mvn
- 作用:显示当前安装的 Maven 版本信息(包括 Java 版本、Maven 主目录等)。
二、构建与生命周期命令
Maven 的核心是 生命周期(Lifecycle),包含一系列预定义的阶段(Phase),按顺序执行。
常用生命周期阶段:validate → compile → test → package → verify → install → deploy
1. 清理项目(删除编译生成的文件)
bash
mvn clean
- 作用:删除目标目录(
target/)中的内容,如编译后的类、包等。
2. 编译源代码(主代码)
bash
mvn compile
- 作用:将
src/main/java目录下的源代码编译为 class 文件,输出到target/classes/。
3. 运行单元测试
bash
mvn
- 作用:执行
src/test/java目录下的单元测试,并生成测试报告。
4. 打包项目
bash
mvn package
- 作用:编译、测试并将项目打包为可分发的格式(如 JAR、WAR、EAR),输出到
target/目录。
5. 安装到本地仓库
bash
mvn
- 作用:将打包后的文件安装到本地 Maven 仓库(
~/.m2/repository/),供其他项目依赖。
6. 部署到远程仓库
bash
mvn deploy
- 作用:将项目发布到远程 Maven 仓库(如公司私服或中央仓库),需在
pom.xml中配置仓库信息。
三、依赖管理命令
1. 下载依赖(强制更新)
bash
mvn dependency:resolvemvn dependency:resolve
- 作用:解析并下载项目所需的依赖包到本地仓库。
2. 查看依赖树
bash
mvn dependency:tree
- 作用:以树状结构显示项目的直接和间接依赖,方便排查依赖冲突。
3. 清除无效依赖
bash
mvn dependency:purge-local-repository
- 作用:删除本地仓库中未使用的依赖(需谨慎,可能影响其他项目)。
四、项目信息与调试
1. 显示项目基本信息
bash
mvn help:effective-pom
- 作用:显示最终生效的
pom.xml(合并了继承、profile 等配置)。
2. 显示插件信息
bash
mvn help:describe 插件groupId:artifactId:版本
- 示例:查看编译器插件信息bash
mvn help:describe org.apache.maven.plugins:maven-compiler-plugin
3. 调试模式运行
bash
mvn compilemvn compile
五、插件命令
Maven 通过插件扩展功能,以下是常用插件示例:
1. 编译插件(指定 Java 版本)
bash
mvn compiler:compile
- 作用:指定编译使用的 Java 版本(需在
pom.xml中配置或临时指定)。
2. Surefire 插件(运行测试)
bash
mvn surefire:test
3. Shade 插件(生成可执行 JAR)
bash
mvn shade:shade
- 作用:将依赖包打入 JAR 中,生成可直接运行的胖 JAR(需在
pom.xml中配置插件)。
六、Profile 相关命令
1. 激活指定 Profile
bash
mvn clean package -Pprofile1,profile2
- 作用:根据
pom.xml中的<profiles>配置,加载不同环境(如开发、生产)的配置。
七、其他实用命令
1. 生成项目骨架(快速创建 Maven 项目)
bash
mvn archetype:generate com.example my-project maven-archetype-quickstart false
- 作用:使用 Archetype 模板创建新项目(如
quickstart模板生成简单 Java 项目)。
2. 停止 Maven 进程(强制终止)
bash
mvn
- 作用:当 Maven 构建卡住时,强制终止进程(Linux 通用命令)。
命令参数常用选项
| 选项 | 说明 |
|---|---|
-D参数=值 |
传递系统属性(如 -Dmaven.test.skip=true 跳过测试) |
-Pprofile |
激活指定 Profile(如 -Pdev 启用开发环境配置) |
-T线程数 |
多线程构建(如 -T 2C 表示使用 2 个 CPU 核心) |
-U |
强制更新远程依赖(针对快照版本) |
-B |
批量模式(不交互,用于脚本) |
最佳实践
- 跳过测试:在打包时跳过测试(如持续集成环境)bash
mvn package true - 指定 JDK 版本:确保 Maven 使用特定 Java 版本(需提前配置
JAVA_HOME)bash/usr/lib/jvm/java-11-openjdkmvn compile
- 查看依赖冲突:通过
dependency:tree命令定位重复或版本不一致的依赖。
通过合理组合这些命令,可高效管理项目构建、依赖和部署流程。更多细节可查阅 Maven 官方文档 或使用 mvn help:help 查看具体命令帮助。