Android一步步教你发布库到Bintray、JCenter(使用bintray-release)| 踩坑集锦

这三天,我感觉我可能踩了所有的坑吧。。。

说下为什么要用JCenter吧,首先JCenter 库是托管在 Bintray 网站上的,发布库到JCenter是需要注册Bintray网站的,JCenter在你创建项目的,是默认给你添加的,谷歌亲儿子,相关支持也比较到位,兼容也比较跟随版本,但是我觉得最重要的是,更新版本要比Jitpack方便很多啊,Jitpack每次要更新库,还需要push到github,发布版本,,,感觉心好累,测试比较多的话,github项目上的release上会显示很多版本,JCent更新版本只需要一句代码就行了,那我们就来尝试使用JCent库吧!

坑一:

首先新建一个项目和库,不清楚的请看:Android Studio制作依赖库上传至github,使用Jitpack,让别人在AS中调用(依赖库冲突踩坑全攻略)_小呆呆666的博客-CSDN博客

确定下项目环境,这个很重要,说下成功发布的环境。(请务必按照下面配置环境,不然可能会因为兼容问题而报错)

build.gradle(Project:***)下

classpath 'com.android.tools.build:gradle:3.0.1'


gradle-wrapper.properties(Gradle Version)下

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

如果使用“classpath 'com.android.tools.build:gradle:3.2.1” 在发布到JCent上的时候会报下面的错,jdk冲突,,,服了。这大概是新的bintray-release插件不兼容“3.2.1”版本,我试了下,好像3.1.x和3.2.x都不兼容,这个实在是坑,这个就等这个和后续谷歌进行版本适配吧。

 What went wrong:
A problem occurred evaluating project ':app'.
> Uninitialized object exists on backward branch 70

注册bintray

bintray官网:https://bintray.com  (进入该网站可能需要科学上网,可百度赛风)

下面是主页的图,但是上面的“Sign Up”是注册组织的账号,需要收费,霸王拉倒最下,有注册个人账号的入口,免费使用。

或者你直接点击,bintray个人账号注册:JFrog Distribution: Get your software to where it needs to be -- ASAP!  (从网站最下面注册个人账号入口链接复制过来的)

 

如果是下图就说明,注册的地方正确,注意,邮箱无法使用qq和网易的,可以用foxmail和谷歌等。

注册成功后,点击选择“View Profile”进入该界面,然后点击“Add New Repository”

下图三个地方,请按照标出的内容填写就行了,最后点击“Create”

接下来,点击“maven”进入,我们自己创建repository就行了

创建新包

image.png

下图按照标注的填好,便可。

  • Name*:填上自己的依赖库名
  • Version control*:填上你的该项目地址,如果放在github上,把这个项目的github地址填进去

image.png

创建完成后我们就需要对我们的项目进行一些配置

在build.gradle(Project:***)里,增加下面俩个位置代码,位置对应代码块:

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

        tasks.withType(Javadoc).all {
            enabled = false
        }

buildscript {
    repositories {
        google()
        jcenter()
    }
    
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.novoda:bintray-release:0.9'
    }
}


allprojects {
    repositories {
        google()
        jcenter()
    }

    tasks.withType(Javadoc).all {
        enabled = false
    }
}

在build.gradle(Module:***)里 增加以下代码即可,“artifactId”就是我们创建包的名字

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

publish {
    userOrg = 'taoge'                 //bintray.com用户名
    groupId = 'com.ytman'             //jcenter上的路径
    artifactId = 'YTAOLibrary'        //项目名称
    publishVersion = '1.0.0'          //版本号
    desc = '多功能库'
    website = 'https://github.com'
}


坑三

我们会为了避免依赖库冲突,会将“compile”或“implementation” 改成compile,这是没问题

但是

这里如果将“testImplementation”和“androidTestImplementation”  改成  “testCompileOnly”和‘androidTestCompileOnly’

在提交到bintray的时候,会报下面的错:

* What went wrong:
Execution failed for task ':XXXXX:testDebugUnitTest'.
> There were failing tests. See the report at: file:///G:/XXXXXX/build/reports/tests/testDebugUnitTest/index.html

所以在这里“testImplementation”和“androidTestImplementation”不要改动

然后提交到bintray,在“Terminal”里输入以下代码

gradlew clean build bintrayUpload -PbintrayUser=“输入你的用户名” -PbintrayKey="输入你的key" -PdryRun=false

用户名就是你注册的用户名

怎么获得key?见下图,先点击“Edit Profile”,然后点击“API Key”,最后点击标注的地方,就能获得key了

最后输入代码:gradlew clean build bintrayUpload -PbintrayUser=“输入你的用户名” -PbintrayKey="输入你的key" -PdryRun=false

上传成功如下

最后,将我们上传的库添加到jcent,选择“Add to JCenter”

 最后点击“send”

 

大功告成!我们等审核结果就行了,由于时差的原因,审核可能需要一天,短的话几小时就能得到结果。

如何使用

进入自己的库,选择Gradle,可以看见引用语句

更新版本

更改代码,更新版本只需要修改下版本号

然后执行代码:gradlew clean build bintrayUpload -PbintrayUser=输入你的用户名 -PbintrayKey=输入你的key -PdryRun=false

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值