Maven 常用命令

文章目录

Maven 常用命令

确保环境已配置

安装 Maven:确保系统已安装 Maven 并正确配置了 MAVEN_HOME 和 PATH。

安装 JDK:确保系统安装了支持的 JDK 并设置了 JAVA_HOME。

测试安装是否正确:

bash 复制代码
mvn -v

常见的项目结构:

bash 复制代码
parent-project/
├── pom.xml (父模块)
├── module-a/
│   └── pom.xml (子模块 A)
└── module-b/
    └── pom.xml (子模块 B)

父模块的 pom.xml 应包含以下内容:

xml 复制代码
<modules>
    <module>module-a</module>
    <module>module-b</module>
</modules>

指定打包子模块

在 Maven 多模块项目中,如果只想打包特定的子模块,可以使用以下方法:

  1. 直接进入子模块目录
    进入目标子模块的目录后运行打包命令:
shell 复制代码
cd parent-project/module-a
mvn clean package
  1. 使用 -pl 参数指定模块
    在父项目目录下使用 -pl 参数指定需要打包的子模块,同时使用 -am 参数(可选)构建其依赖模块:
shell 复制代码
mvn clean package -pl module-a
  • -pl:指定要构建的模块列表(用逗号分隔多个模块)。
  • -am(可选):自动构建模块的依赖模块。

查看依赖关系

查看依赖树

使用 dependency:tree 查看依赖树

复制代码
mvn dependency:tree

输出示例:

text 复制代码
[INFO] --- maven-dependency-plugin:3.5.0:tree (default-cli) ---
[INFO] com.example:my-module:jar:1.0.0
[INFO] +- org.springframework:spring-core:jar:5.3.6:compile
[INFO] \- org.slf4j:slf4j-api:jar:1.7.30:compile

关键点:

  • +:直接依赖。
  • -:传递性依赖(由直接依赖引入)。
  • Scope:依赖的范围,如 compile, test, provided, runtime。

分析冲突的依赖

如果怀疑有依赖冲突问题,可以使用 dependency:tree 加 verbose 模式:

复制代码
mvn dependency:tree -Dverbose

输出示例(详细版本信息和冲突):

text 复制代码
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.14.0:compile
[INFO] \- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO]    \- (org.slf4j:log4j-over-slf4j:jar:1.7.30:compile - omitted for conflict with 1.7.25)

生成依赖报告

运行以下命令生成 HTML 格式的依赖报告:

bash 复制代码
mvn project-info-reports:dependencies

输出位置:

报告会生成在 target/site/dependencies.html 中,可以通过浏览器查看。

相关推荐
Coder码匠21 分钟前
Dockerfile 优化实践:从 400MB 到 80MB
java·spring boot
李慕婉学姐8 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆9 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin10 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model200510 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉10 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国10 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_9418824810 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈11 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_9911 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc