写点什么

maven 项目下的重复依赖校验

发布于: 2021 年 03 月 30 日
maven项目下的重复依赖校验

一 背景

来自一位测试同学的需求,历史出现过 Java 同学提交代码后,因为引入重复依赖导致工程报错的问题。所以希望能够尽早排查出重复依赖,或代码中与适用的 jar 包有包名和类名都完全相同的情况。

二 讨论

初步讨论了一下,觉得可以用 jar 包扫描的方式,来提取所有类(及类所在的目录/包),然后进行重复判断。几个关键点:

1、扫描方式

是否有现成的工具或插件提供包扫描功能。最底线的办法,就是手写读取 jar 包内容的方法,实现这个功能;

2、扫描时机

做成 idea 插件形式;

代码提交后触发,这个可以通过 webhook 配置感知检查时机。

3、扫描路径

因为是 maven 工程,所以读取 maven 下工程的构建位置即可。需要获取 maven 的配置信息,在固定环境下,也可以输入一次构建路径,后续直接使用即可。

三 实现尝试

3.1 扫描工具

maven神器插件enforce查找重复类中,提供了几种扫描 jar 包的方法,我们逐个做个验证,看是否可以达到我们预期的效果。

3.2 maven 工程构建路径

这个配置信息,如果开发工具是 idea 的话,可以右键工程的 pom.xml=>maven=>Open Settings.xml 查看:

在打开的 settings.xml 中,<localRepository>标签内就是本地仓库路径:


或者,默认是在~/.m2/settings.xml,可以尝试直接打开这个文件:

vi ~/.m2/settings.xml,定位到本地仓库位置。

3.3 操作实践


参考文章

maven神器插件enforce查找重复类


发布于: 2021 年 03 月 30 日阅读数: 7
用户头像

磨炼中成长,痛苦中前行 2017.10.22 加入

微信公众号【程序员架构进阶】。多年项目实践,架构设计经验。曲折中向前,分享经验和教训

评论

发布
暂无评论
maven项目下的重复依赖校验