Android上传开源库到jcenter的一些经验教训

把库成功上传到jcenter后(上传过程下篇文章介绍),出现了一个很奇怪的问题,明明成功上传,为什么在代码中应用报错了?

gradle 引用代码

compile ‘com.apkfuns.logutils:library:1.0.0’

报错的内容

Error:(63, 13) Failed to resolve: com.apkfuns.logutils:library:1.0.0

但是我确定jcenter已经上传成功,在jcenter库中能看到详细信息。

http://jcenter.bintray.com/com/apkfuns/logutils/library/1.0.0/  


尝试了各种方法,比如在最后加上@aar之类的各种方法都没用

最后公司导师提示,才想到可能maven-metadata.xml和library-1.0.0.pom中artifactId参数不一致的原因。

maven-metadata.xml中artifactId为上传的module的名称,我的module叫library,意思为依赖库

library-1.0.0.pom中的artifactId是自己设定的,我取的项目名logutils

最后新加了1.0.1版本,将library-1.0.0.pom中的artifactId也设定为library就能正常加载了。

http://jcenter.bintray.com/com/apkfuns/logutils/library/1.0.1/  


告诫上传库到jcenter的各位,

不要将需要上传的库名取名为library

不要将需要上传的库名取名为library

不要将需要上传的库名取名为library

重要的事要说三遍。


一般gradle依赖项目路径为:GROUPID:ARTIFACTID:VERSION

ARTIFACTID默认为项目名,如果还有其他库就必须靠GROUPID来区分了。

而且gradle引用后显示的也不清楚。比如我的这个库

你能看出来这是什么库吗?体验相当不好。

重要:所以最开始创建的时候就用项目名就OK了。