原文:关于Jitpack发布aar,会丢失内置依赖库问题 | Stars-One的杂货小窝
关于发布aar出现的一个大坑排查,折腾了两天,终于是找到了解决方案
问题描述
有这样的一个情况,我新建了个Android的module,然后里面有依赖EventBus这个开源库,之后发布到Jitpack上
新项目引用我发布的那个库,然后运行的时候就报了个错误,说是找不到EventBus这个库
问题排查
显示排查了依赖的问题
最初以为,是依赖的方式不对,因为之前看相关资料,如果是module的话,使用
compile
关键字进行依赖的话比较好
但是之后尝试发现,使用
api
或
implementation
,依赖都没有加上去
jitpack可以查看我们库的pom.xml文件,虽然jitpack提供的文档没有提及,下面的地址就是你发布库的地址
https://javadoc.jitpack.io/com/github/stars-one/android-component-libray/
从图中可以看到,有个列表展示了不同的路径名,知道maven的结构的同学应该很熟悉了
这里,我的项目是个多module,所以就会有多个不是版本号的文件夹,如果是单个module的话,应该是只有版本号的文件夹
其实就是一层层下去就可以找到我们的
pom.xml
文件了
我首先是排查了下某个module中的pom.xml文件,果不其然,里面依赖全都是空
从图中可以看到,有个列表展示了不同的路径名,知道maven的结构的同学应该很熟悉了
这里,我的项目是个多module,所以就会有多个不是版本号的文件夹,如果是单个module的话,应该是只有版本号的文件夹
其实就是一层层下去就可以找到我们的
pom.xml
文件了
我首先是排查了下某个module中的pom.xml文件,果不其然,里面依赖全都是空
如下图所示:
连dependencies的标签没有,怪不得需要重新依赖了,知道了原因之后,于是上网搜索答案
终于是在bing搜索找到了一个关键信息,即下面的解决方法(还是stackflow网站靠谱 😄)
解决方案
将你的插件
android-maven-gradle-plugin
升级到2.0版本
classpath \'com.github.dcendents:android-maven-gradle-plugin:2.0\'
参考
- java – My library not detecting external dependencies mentioned in its gradle file – Stack Overflow