背景:新需求引用了一个jarA,但这个jar又间接引用了一个B包,并且是高版本2.3.0,本地指定了B的低版本不生效,决定在A处排除B,不生效,决定查看依赖树排除
安装sbt
下载sbt-0.13.18.zip 并解压到sbt
vi ~/.bash_profile
设置PATH:export PATH=/Users/majiali/Downloads/sbt/bin:$PATH
修改立即生效:source ~/.bash_profile
查看环境变量的值:echo $PATH
这里关于修改哪个文件,有点需要注意的
/etc/profile;/etc/bashrc 是针对系统所有用户的全局变量,只有root用户才能修改这两个文件安装还有点小插曲,安装完报了一个异常,一脸懵逼,后来想起来自己为了查看依赖树指定了一个全局sbt-dependency-graph插件,估计版本不对吧,删掉就好了。
查看依赖树
装好后输入sbt
再输入 whatDependsOn groupId artifactId 2.3.0
发现了一个Cjar的间接引用,C又引用了B,我也不知道什么原理,我再把C排除一遍就好了。。。。
思考,如果想要输出到文件,退出sbt
sbt dependencyTree > /tmp/sbt.txt
或 sbt whatDependsOn groupId artifactId 2.3.0 > /tmp/sbt.txt
至此排查完毕。
网友评论