参考文章:
http://blog.csdn.net/lmj623565791/article/details/51148825
http://blog.csdn.net/u012375207/article/details/56840217
bintray-release的github网址
https://github.com/novoda/bintray-release
这几天,在学习项目上传jcenter的东西,遇到一些问题,在这里写出来,算是一个总结笔记了。期间遇到的问题,会在文章最后写出来。先完整的走一遍正确、成功的流程。
1、注册bintray.com账号
关于Android Studio、bintray、jcenter直接的关系,我的理解是:Android Studio写好功能代码,这是第一步:备货;然后上传到bintray,这是第二步:装车;然后,告诉车,货已经装好了,发车,车就开始把“货”拉到仓库jcenter。用户用的时候,就是通过gradle中的一个引用,去仓库拿货。
bintray主页:
https://bintray.com/
进去后,会看到页面
其中,1入口去注册得到的账号,是企业版的,注册之后的是企业账号,需要有30天的激活时间,在30天内需要缴费才能够正常使用,如果30天内未缴费,则会被作废处理。
2入口,才是个人的。
注意,不要用QQ邮箱注册!
2、注册就不讲了,一步一步来就行。注册成功后,登录,会看到如下界面:
我标出来的API Key 入口,一会要用。先了解一下。主要看我圈住的地方:chen(Maven)
这个新建后是没有的,要新创建,名字随意,但是一定要是Maven类型的。而且License要是Apache-2.0的。如果以前已经有了,但是不是Apache-2.0的,可以去更新一下License。
点击 Add New Respository
创建成功后,点击API Key入口的任一入口,去查看自己的API Key
输入自己的bintray账号的登录密码,就能看到了,不过是密文的,点击“show”,会看到明文,复制出来,一会要用。
到此为止,“车”已经准备好了,仓库本来就有。就等我们准备“货”了。下面,我们开始备货。
新加一个项目。建好后,在项目上new 一个module
选择Android Library。
我这里是创建了一个项目:ChenDemo,然后新建了一个moudle:mylibrary,项目中不用管,最后发布的是moudle。然后,在moudle中写个工具类:
到此为止,货有了。接下来,就是装车了。
1、在整个项目的build.gradle下,添加语句
classpath 'com.novoda:bintray-release:0.5.0'
如果moudle中的工具上有中文注释,还需要加上
tasks.withType(Javadoc) {
options{
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
如图:
2、然后,再去要发布的moudle(我这里是mylibrary)下的gradle下添加
//添加
apply plugin: 'com.novoda.bintray-release'
//添加
publish {
userOrg = 'chenjianqiang'//bintray用户名
repoName = 'chen'//要传到的maven的名字。你可能有多个maven,要传哪个写哪个。
groupId = 'com.chenjq'//jcenter上的路径
artifactId = 'mylibrary'//项目名称
publishVersion = '1.0.0'//版本号
desc = 'the first time uploading'//描述,不重要
website = 'https://github.com'//网站,不重要;尽量模拟github上的地址
}
如图:
3、打开Terminal。需要指向当前项目。一般都是默认这个
然后输入命令行:
gradlew clean build bintrayUpload -PbintrayUser=aaa -PbintrayKey=bbb -PdryRun=false
说明:
s1、我这里的环境是windows环境,如果有用mac的,命令行应该是
./gradlew clean build bintrayUpload -PbintrayUser=aaa -PbintrayKey=bbb -PdryRun=false
这个我没验证过,不确定。
s2、PbintrayUser是你的bintray的用户名
s3、PbintrayKey是刚才说的API Key
4、回车,然后耐心等待。不出意外,会出现
5、完美!!!
装车成功了!!!这个时候,再去bintray页面看看,可以看到
看到了吧。mylibrary上传这里了。然后点击
就会看到
继续点击mylibrary
继续
点击send。终于发车了!!!
接下来,我们需要做的,就是静静的等待。等仓库管理员审核过了,会给你bintray账号发邮件,或者在网页上访问链接
https://jcenter.bintray.com/你的groupId
查看。
我上面gradle中写的groupId 是com.chenjq,所以,链接就是
https://jcenter.bintray.com/com/chenjq
如果没有还没有结果,就会看到
审核比较费时间。几小时到1天不等。这里假装立刻成功了,访问链接,会看到
这就说明成功了。如果还不放心,去bintray邮箱中看一下。
如果我们再点击mylibrary
会看到没有 Add to Jcenter了
终于到了仓库了。接下来就是使用了。使用的引用是
compile 'com.chenjq:mylibrary:1.0.0'
这里为什么是com.chenjq、mylibrary、1.0.0这3个呢。去看看moudle的gradle中的publish就知道了
直接上图了:
完美!!!
—————————————————————————————————-
在实际用的时候,遇到了这样的bug
Error:Could not get unknown property 'main' for SourceSet container of type org.gradle.api.internal.tasks.DefaultSourceSetContainer.
或者是
找了半天原因,通过文档
https://github.com/zhihu/Matisse/issues/51
发现,bintray-release已经更新到0.5.0了,但是是之前的博客还是用的 0.3.4或者0.4.0,我把版本改成0.5.0,就好了。
最后,附上bintray-release的github网址,实际用的时候,先看下最新bintray-release的版本
https://github.com/novoda/bintray-release