Android 上传自己的开源库到Bintray(超简单哦)

Android 53 2017-11-08 16:56

背景

我们在项目中引用过各路大神的开源库,但是如何将自己的Library发布到Maven仓库呢,搜索了半天,知道了jcenter是由 bintray.com维护的Maven服务器,该服务器是现在最通用的,可以试一下,但是网上的方法各种复杂,不想搞,终于找到了一种超级简单的方法,在此做个记录分享给大家。

注册

打开 bintray.com,点击右上角“Sign In”,进入登录页面。

Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
bintray首页

Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
bintray登录页面

点击 Sign Up to an Open Source account进入注册页面。
千万注意不要直接点首页的 START YOUR FREE TRIAL 直接注册,官网默认的注册网站是给组织使用的,并非个人,否则后续会导致各种问题。
Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
bintray注册页面

具体注册方法就不多说了,大家应该都会,建议关联github账号,据说如果通过邮箱注册,需要国外的邮箱,gitHub亲测,好使。

创建Maven仓库

点击Add New Repository按钮创建Maven仓库

Android 上传自己的开源库到Bintray(超简单哦)-JEESNS

创建Maven仓库时, Name是你自己的仓库名可以随意填写,我就随便取了个MyMoven的名字, Type一定要选择Maven, Default Licenses需要选择Apache-2.0,至于为什么选Apache-2.0没有具体研究。
Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
创建Maven仓库页面

点击 Create按钮创建MyMoven仓库成功。
Android 上传自己的开源库到Bintray(超简单哦)-JEESNS

到这里我们的第一步已经完成了,注册Bintray个人账号,创建Moven仓库,下面介绍如何将我们的Library上传到这个仓库中。

工程配置

  • 主工程根目录下的build.gradle文件中加入上传开源库的依赖,这里要注意一下gradle版本需要与bintray-release版本保持一致。
build script {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.novoda:bintray-release:0.4.0'
    }
}

all projects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

  • Library工程的build.gradle配置
    1 添加apply
apply plugin: 'com.novoda.bintray-release'

2 忽略错误信息

android {
    ***
    ***
    lintOptions {
        abortOnError false
    }
}

3 如果有中文注释加入如下代码

android {
    ***
    ***
}

all projects {
    repositories {
        jcenter()
    }
    tasks.withType(Javadoc) {
        options{ encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

4 配置binary上传基本信息,具体配置和参考Bintray Configuration,下面是我的配置

publish {
    repoName = 'MyMoven'           //bintray仓库名
    userOrg = 'wyshikai'           //bintray注册的用户名
    groupId = 'com.sky'            //compile引用时的第1部分groupId
    artifactId = 'CustomTab'       //compile引用时的第2部分项目名
    publishVersion = '1.0.0'       //compile引用时的第3部分版本号
    desc = 'This is a simple custom tab library for Android'
    website = 'https://github.com/wyshikai837/CustomTab'
}

配置就大功告成了


发布到Binary

1 首先需要找到API KEY,点击账号管理中的Edit Profile


Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
Edit Profile

Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
API KEY

Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
复制API KEY

2 在Android Studio的terminal或者cmd(注意要先进入工程根目录)中,执行命令

./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

其中BINTRAY_USERNAME是账号名,BINTRAY_KEY是API KEY
注意这个命令是在MAC系统下的,如果在Windows系统需要去掉./

gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

如果最后显示,表示发布成功了

BUILD SUCCESSFUL
Total time: *** secs

打开刚刚我们创建的仓库,就可以看到我们上传的Library


Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
Library

点击Library查看详情,如果看到Maven build settings和Add to JCenter,那么恭喜你最重要的一步已经完成了。


Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
详细信息

3 发布到Center
点击上图中的Add to JCenter按钮,填写说明,并提交审核,就可以静静的等待了,基本上几个小时就可以通过
Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
提交审核

发布工作已经完成了,是不是很简单啊,这里还想啰嗦一句,大家在配置信息的时候一定要注意Gradle与Bintray版本对应,否则会导致所有步骤都没有问题,并且提交JCenter审核也通过了,就是引用不到库,我查了好久才查到是这个问题。


依赖使用

在审核通过前可以配置私有仓库来使用


Android 上传自己的开源库到Bintray(超简单哦)-JEESNS
私有仓库地址

在根目录的build.gradle下配置,私有仓库地址

allprojects {
    repositories {
        jcenter()
        maven {url 'https://dl.bintray.com/wyshikai/MyMoven/'}
    }
}

在使用到仓库的工程中加入依赖即可

compile 'com.sky:CustomTab:1.0.0'

等待审核通过后,将私有仓库地址删除即可。

文章评论