基于源码运行DepClean分析出现依赖未本地复制警告,依赖大小显示未知
问题触发逻辑
- DepClean统计依赖体积的前置流程是,将项目全量依赖的Jar包从本地Maven仓库复制到模块下
target/depclean-deps临时目录,一旦复制流程抛出IO异常,就会输出Dependencies where not copied locally警告;后续无法读取Jar包大小,所有依赖统一标注size unknown。 - 仅
depclean-core模块触发该问题的核心原因:你运行分析时默认调用了本地Maven仓库中已有的2.0.1正式版DepClean Maven插件,而非你本地编译生成的2.0.2-SNAPSHOT版本插件,旧版插件存在两个兼容性缺陷:- 对当前reactor多模块项目的依赖路径解析逻辑不适配
- 对
provided范围依赖的Jar文件获取存在bug,而depclean-core模块继承了父POM的Lombok provided依赖,刚好触发异常
解决步骤
- 先完成本地插件的编译安装:在项目根目录执行
mvn clean install -DskipTests,将本地编译的2.0.2-SNAPSHOT版本DepClean插件安装到本地Maven仓库。 - 运行依赖分析时显式指定本地编译的插件版本,执行命令:
mvn se.kth.castor:depclean-maven-plugin:2.0.2-SNAPSHOT:depclean,避免自动拉取旧版正式版插件。 - 若仍触发警告,先清理本地仓库旧版DepClean的残留文件:删除本地Maven仓库下
se/kth/castor/目录的所有内容,重新执行编译安装命令后再运行分析。 - 额外校验:确保本地Maven仓库路径、项目根路径无中文、空格或特殊字符,避免文件复制时路径解析失败。
内容的提问来源于stack exchange,提问作者Abhay Singh
相关产品推荐
相关产品推荐

