多模块Maven项目能否单独为各模块生成依赖树并存入指定文件夹
Maven多模块批量生成各模块独立依赖树方案
完全可以实现,你可以通过Maven官方的依赖插件配合参数直接完成,不需要额外安装第三方工具。
前置要求
- 本地Maven环境配置正常,项目可以正常执行
mvn相关命令 - 提前创建好用于存储依赖树文件的目标目录,例如项目根目录下的
dependency-trees文件夹
实现操作
方案1:单条命令直接批量生成
在项目根目录执行以下命令即可,所有模块的依赖树会自动生成并存到你指定的统一目录中:
mvn dependency:tree -DoutputDirectory=./dependency-trees -DoutputFile=dependency-tree.txt
命令参数说明:
dependency:tree:Maven依赖插件内置的生成依赖树的执行目标-DoutputDirectory:指定所有依赖树文件的统一存储路径,你可以替换为自定义的绝对或相对路径-DoutputFile:指定每个依赖树文件的文件名,Maven会为每个模块单独生成独立的文件
方案2:自定义脚本生成(方便按模块名区分文件)
如果你需要每个依赖树文件以对应模块名命名,方便快速定位对应模块的依赖信息,Linux/Mac环境可以直接在项目根目录执行以下bash脚本:
# 创建存储依赖树的目标文件夹 mkdir -p ./dependency-trees # 遍历所有模块分别生成依赖树 for module in $(mvn help:evaluate -Dexpression=project.modules -q -DforceStdout | grep -v '\[\|\]' | sed 's/,//g'); do mvn -pl $module dependency:tree -DoutputFile=./dependency-trees/${module}-dependency-tree.txt done
执行完成后,dependency-trees目录下会生成格式为{模块名}-dependency-tree.txt的依赖树文件,每个文件对应一个模块的完整依赖信息。
结果校验
执行完命令后进入你指定的存储目录,检查每个模块是否都生成了对应的依赖树文本文件,打开文件确认内容符合预期即可。
内容的提问来源于stack exchange,提问作者Eric Reboisson
相关产品推荐
相关产品推荐

