将Android Library发布到JCenter的成功秘籍

写个开头的重点注意事项:一定要确保网络可以翻墙,VPN是必须的。

注册 Bintray 账号并创建仓库 

Bintray 是 JCenter 库的运营商,首先要去这个网站注册一下账号 https://bintray.com

注意:第一个绿色按钮(“START YOUR FREE TRIAL”)是注册企业帐号,只有一个月的试用期。个人用户选择上图红框框里的按钮(“For an Open Source Account”),点击后会跳转到https://bintray.com/signup/oss

注意:这里的Email Address最好用gmail邮箱:xxx@gmail.com. QQ邮箱,网易邮箱暂没有成功注册过。如果是选择Sign up with github,如果github绑定的邮箱是QQ邮箱也是不行的。So ,最好有gmail邮箱。

 

帐户创建成功并登录。

这里就可以创建自己的资源仓库,如里没有创建,后面上传Library时不指定仓库就会上传到默认仓库(maven).

点击(“Add New Respository”),创建自己的资源仓库

创建成功后返回会看到

至此,资源仓库创建已创建成功,网上也有说需要在仓库里去创建一个包(Package),但根据我的实际操作,没有创建包也是可以的,在执行时,发现没有相应的包,会自己创建的。当前也可以自己去创建,但实在没有必要多做这一步。

接下去配置Android studio工程

在工程的根Build.gradle文件中添加

classpath 'com.novoda:bintray-release:0.8.0'

注意,这里的com.novoda:bintray-release版本是根据gradle版本号来配置的。

我这里用的是gradle-4.6-all.zip,相应的bintray-release版本号为0.8.0。如果两者版本号匹配,则有可能上传不成功.

在要上传的module的build.gradle文件中添加

apply plugin: 'com.novoda.bintray-release'

上图中的顺序最好不变,将bintray-release放在第一位,否则可能有异常情况发生。

//加上这些(如果有中文注释)
tasks.withType(Javadoc) {

    options{ encoding "UTF-8"

        charSet 'UTF-8'

        links "http://docs.oracle.com/javase/7/docs/api"

    }

}

继续添加

publish {

    userOrg = '用户名'      //bintray注册的用户名

    groupId = 'com.sample'         //compile引用时的第1部分groupId
	//compile引用时的第2部分项目名 //实际引用implementation ‘groupId:artifactId:publishVersion’
    artifactId = 'commonUtils'     

    publishVersion = '1.0.0'  //compile引用时的第3部分版本号 //实际引用implementation 'com.sample:commonUtils:1.0.0'
   
desc = 'common utils include http request uesd in android'//项目描述
   
repoName="NewCreate" //你的仓库名称,没有填写默认仓库是maven//这也是很多人上传仓库不对名问题最多情况,
   
website = 'https://github.com/eastman-sz/AndroidLibs' //github 托管地址,最好有,实在没有,可以为空
   
dryRun=false
}

 

 



ext {
    PUBLISH_GROUP_ID =
'com.sample'
   
PUBLISH_ARTIFACT_ID = 'commonUtils'
   
PUBLISH_VERSION = '1.0.0'
}

/* 以下可以生成一个zip包,然后上传到bintray,再发布到jCenter,这样比较快捷 */

apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'

如下图:

好了,到这里项目里的配置就算是完成了,准备上library上传到bintray.

准备bintray key,这个在上传的命令里有用,在个人的bintray帐户下获得

将API key复制出来,看下面的命令

gradlew clean build bintrayUpload -PbintrayUser=用户名(bintray) -PbintrayKey=替换真正的API_Key -PdryRun=false

如果是mac,命令头部加./

./gradlew clean build bintrayUpload -PbintrayUser=用户名(bintray) -PbintrayKey=替换真正的API_Key -PdryRun=false

打开android stuido的命令终端Terminal

执行命令

如果成功,就会显示BUILD SUCCESSFUL

在Bintray的资源仓库里就会看见刚刚上传的libray

这时可以看到,虽然上传成功了,Bintray上也的刚上传的libray,但是version并没有显示出来,所以也不能引用。接下来执行第二步命令,生成zip包,然后上传到Bintray。

执行生成zip包的命令

gradlew clean build generateRelease

同样,mac电脑在命令头部加./

./gradlew clean build generateRelease

执行完成后,会看到所生成的zip包地址,如下图

准备上传zip包

第一步

第二步

第三步

第四步

第五步,发布

发布成功后,再次进入资源仓库的包下,可以看到,已可引用,如下图

到这一步,表明library已经上传到bintray并可以引用。

注意,这时并没有上传到JCenter,引用时需要在工程的根build.gradle文件时添加

maven { url 'https://dl.bintray.com/你的Bintray用户名/仓库名}

然后就可以在需要引用的moudle的build.gradle中添加

implementation 'com.sample:commonUtils:1.0.0'

来引用commonUtils,如下图

最后一步,上传到JCenter.

接下来就是等待JCenter审核,正常情况下,6个小时左右,一般不会超过24个小时,审核成功后,会发邮件通知

好了,上传JCenter成功,引用就非常简单了

implementation 'com.sample:commonUtils:1.0.0'
一行就ok,再无其他。

如果需要更新,只需要更改版本即可,然后重复上面的必要步骤。

Congratulations

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值