用Android Studio将项目上传到JCenter和Maven Central遇到的一些问题及解决办法
大多数项目均可依照nuuneoi的教程How to distribute your own Android library through jCenter and Maven Central from Android Studio 成功上传到JCenter和Maven Central。
但是,如果你的项目中有第三方依赖关系,如在build.gradle中有
但是,如果你的项目中有第三方依赖关系,如在build.gradle中有
compile 'com.android.support:appcompat-v7:23.1.1'
那么在terminal中执行命令
./gradlew build
时,会有错误提示,提示找不到第三方依赖关系中的包的内容,无法生成javadoc。找到一篇分析的比较清楚的文章Android 项目打包到JCenter的坑,其中说到了javadoc无法生成的原因就是存在第三方依赖关系,但是按文中给出的gradle脚本执行,依然会报错。
后来我稍微琢磨了一下nuuneoi教程中给出的gradle脚本。生成javadoc的语句是
后来我稍微琢磨了一下nuuneoi教程中给出的gradle脚本。生成javadoc的语句是
task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir }
本人对gradle也知之甚少,但是经过多次尝试,将上述语句中task javadoc的内容删掉即可成功生成javadoc.jar
task javadoc(type: Javadoc) { } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir }
我想的是,这样一来,能够生成javadoc.jar,但是里面的内容应该为空吧,因为task javadoc内容为空。但是后来发现javadoc.jar中的内容并不为空( ̄ー ̄〃),但是也无所谓了。
如此一来,按照nuuneoi的教程,你的项目应该能顺利的上传到JCenter和Maven Central了。下面几个图是我成功上传到项目。
已经上传到JCenter的项目
如此一来,按照nuuneoi的教程,你的项目应该能顺利的上传到JCenter和Maven Central了。下面几个图是我成功上传到项目。
已经上传到JCenter的项目
已经上传到Maven Central的项目
将项目上传到JCenter的时候,有几个值得注意的点。
- 同步到JCenter的项目的结构一定要符合格式要求。虽然Bintray团队回复说javadoc是optional,但是没有javadoc应该是通不过审核的。下图应该是正确的项目结构:含有 sources.jar,javadoc.jar, .aar文件和.pom文件
- 如果你之前的项目的结构不符合要求,后来修改至符合要求了,再向Bintray团队提出审核申请,Bintray团队可能还是不会审核通过。这个时候,将原来的项目版本删掉,再上传一个新的项目版本(可能内容是一样的,这无所谓),然后提出审核申请,应该就能通过了。反正这是我经历过的问题,也是这样解决的。
评论
发表评论