Android上传library到jCenter 和 Maven Central

Android上传library到jCenter 和 Maven Central

大鱼 13,833 2019-02-13

开放插件到开源库

1. 去https://bintray.com/注册账户

记得点这里注册,左边的私库是企业用的
974235256d55131fa432e58.png

2. 查看自己的私有APIKey

974235223ab42faeb26dc89.png

3. 创建仓库

9742352b56879f1b6cd9e6f.png

4. 创建package

9742352b8faf4d79aad4988.png

5. 创建好自己的项目和一个想要上传的library

类似这样
974235240a7342cf62529e1.png

6. 添加项目配置

1. 项目根目录gradle添加

        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "com.novoda:bintray-release:0.9.2"

要注意gradle、gradle插件和bintray插件版本的差别, 有可能因为版本对不上,导致报错或无法上传
974235266156d29580f2750.png
然后在allprojects添加

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

如果项目是kotlin项目需要在gradle的最外层添加如下配置

//如何你的类库采用kotlin语言, 请加上
//非常重要 要不它不认识你的项目.kt文件名 其中jsbridge是你的library名
tasks.getByPath(":jsbridge:javadocRelease").enabled = false

2. 在module里面的gradle配置如下

apply plugin: 'com.novoda.bintray-release'
android{
...
 lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

//添加
publish {
    repoName="BigFish"//仓库名
    userOrg = 'bigfish'      //bintray注册的用户名
    groupId = 'cc.finder'         //compile引用时的第1部分groupId
    artifactId = 'jsbridge'     //compile引用时的第2部分项目名
    publishVersion = '1.0.1'    //compile引用时的第3部分版本号
    desc = 'This is a rxbus same of eventbus extend library '//d项目描述
    website = '' //github 托管地址
}

7.执行上传命令

windows

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

macOs

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

其中BINTRAY_USERNAME换成bintray注册的用户名,BINTRAY_KEY为自己的APIKEY

如果顺利执行完毕,就说明已经上传成功
9742352cae9ec9ddf874acd.png

8.最后使用

97423520dfb8bf5f4d7fbe9.png