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 中,可以通过浏览器查看。

相关推荐
Vic1010119 分钟前
解决 Spring Security 在异步线程中用户信息丢失的问题
java·前端·spring
QD_IT伟31 分钟前
SpringBoot项目整合Tlog 数据链路的规范加强
java·spring boot·后端
源码获取_wx:Fegn089531 分钟前
基于springboot + vue二手交易管理系统
java·vue.js·spring boot·后端·spring·课程设计
Zsh-cs32 分钟前
Spring
java·数据库·spring
爬山算法34 分钟前
Springboot请求和响应相关注解及使用场景
java·spring boot·后端
程序员水自流37 分钟前
MySQL InnoDB存储引擎详细介绍之事务
java·数据库·mysql·oracle
请为小H留灯1 小时前
Java实际开发@常用注解(附实战场景)
java·后端·个人开发
老华带你飞1 小时前
在线教育|基于springboot + vue在线教育系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
路边草随风1 小时前
java操作cosn使用
java·大数据·hadoop
TT哇1 小时前
【项目】玄策五子——匹配模块
java·spring boot·websocket·spring·java-ee·maven