发布Library到JCenter

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wei11556/article/details/83614719

1.注册bintray


先到https://bintray.com注册一个账号,支持Github、Google、Twitter直接授权登录

2.获取bintray.user和bintray.apikey


bintray.user就是注册时的username 
bintray.apikey在个人中心可以看到 

3.Project的build.gradle添加如下信息

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

4.配置用户信息

在工程根目录的local.properties新增bintray.userbintray.apikey两个变量,把刚才的username和apikey填入

5.配置config.gradle

在工程根目录添加config.gradle,并在工程的build.gradle中引入config.gradle

apply from: "config.gradle"
ext {

    android = [
            compileSdkVersion: 27,
            applicationId    : "com.lisn.mywanandroid",
            minSdkVersion    : 16,
            targetSdkVersion : 27,
            versionCode      : 1,
            versionName      : "1.0"
    ]

    dependVersion = [
            support: "27.1.1",
            dbflow : "4.2.4"
    ]

    dependencies = [
            //android-support
            "support-v4"          : "com.android.support:support-v4:${dependVersion.support}",
            "appcompat-v7"        : "com.android.support:appcompat-v7:${dependVersion.support}",
            "design"              : "com.android.support:design:${dependVersion.support}",
            "recyclerview"        : "com.android.support:recyclerview-v7:${dependVersion.support}",
            "cardview"            : "com.android.support:cardview-v7:${dependVersion.support}",
            "preference"          : "com.android.support:preference-v14:${dependVersion.support}",
            "constraint-layout"   : 'com.android.support.constraint:constraint-layout:1.1.3',

            //http
            "retrofit2"           : "com.squareup.retrofit2:retrofit:2.1.0",
            "converter-scalars"   : "com.squareup.retrofit2:converter-scalars:2.1.0",
            "converter-gson"      : "com.squareup.retrofit2:converter-gson:2.1.0",
            "adapter-rxjava2"     : "com.squareup.retrofit2:adapter-rxjava2:2.2.0",

            //httpcache
            "rxCache"             : "com.github.VictorAlbertos.RxCache:runtime:1.8.0-2.x",
            "Jolyglot-gson"       : "com.github.VictorAlbertos.Jolyglot:gson:0.0.3",

            //rxjava
            "rxjava"              : "io.reactivex.rxjava2:rxjava:2.0.6",
            "rxandroid"           : "io.reactivex.rxjava2:rxandroid:2.0.1",
            "rxbinding2"          : "com.jakewharton.rxbinding2:rxbinding:2.0.0",
            "rxlifecycle2"        : "com.trello.rxlifecycle2:rxlifecycle:2.1.0",
            "rxlifecomponents"    : "com.trello.rxlifecycle2:rxlifecycle-components:2.1.0",

            //dagger2
            "dagger"              : "com.google.dagger:dagger:2.7",
            "dagger-compiler"     : "com.google.dagger:dagger-compiler:2.7",

            //ui
            "constraint-layout"   : "com.android.support.constraint:constraint-layout:1.0.2",
            "butterknife"         : "com.jakewharton:butterknife:8.8.1",
            "butterknife-compiler": "com.jakewharton:butterknife-compiler:8.8.1",
            "BaseAdapterHelper"   : "com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30",
            "glide"               : "com.github.bumptech.glide:glide:4.0.0-RC1",
            "banner"              : "com.youth.banner:banner:1.4.9",
            "circleimageview"     : "de.hdodenhof:circleimageview:2.2.0",
            "utilcode"            : "com.blankj:utilcode:1.9.6",
            "agentweb"            : "com.just.agentweb:agentweb:3.1.0",
            "flowlayout"          : "com.hyman:flowlayout-lib:1.1.2",
            "fragmentation"       : "me.yokeyword:fragmentation:1.3.3",
            "swipebacklayout"     : "cn.bingoogolapple:bga-swipebacklayout:1.1.0@aar",

            //alibaba
            "arouter-api"         : "com.alibaba:arouter-api:1.3.1",
            "arouter-compiler"    : "com.alibaba:arouter-compiler:1.1.4",

            //DBFLOW
            "dbflow-processor"    : "com.github.Raizlabs.DBFlow:dbflow-processor:${dependVersion.dbflow}",
            "dbflow-core"         : "com.github.Raizlabs.DBFlow:dbflow-core:${dependVersion.dbflow}",
            "dbflow"              : "com.github.Raizlabs.DBFlow:dbflow:${dependVersion.dbflow}",
            "dbflow-sqlcipher"    : "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dependVersion.dbflow}"
    ]

    jcenter = [
            versionCode: 1,
            versionName: "1.0.1",
            //项目名称
            name       : "BottomBar",
            groupId    : "com.lisn",
            siteUrl    : "https://github.com/cnlisn", //项目地址
            gitUrl     : "https://github.com/cnlisn", //项目git地址
            description: "底部导航栏",                //项目描述
            authorId   : "SG",                        //开发者的一些基本信息
            authorName : "SG",                        //开发者的一些基本信息
            authorEmail: "SG",                        //开发者的一些基本信息

            //开原协议
            licenses   : {
                license {
                    name 'MIT'
                    url 'https:opensource.org/licenses/MIT'
                }
            },
            licenseName: 'MIT'
    ]
}

6.创建Library配置Library

在Library Module根目录 创建bintray.gradle,并在Library 的build.gradle中引入bintray.gradle

apply from: "bintray.gradle"
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

version = rootProject.ext.jcenter.versionName
group = rootProject.ext.jcenter.groupId

android {
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    //buildToolsVersion rootProject.ext.android.buildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.jcenter.versionCode
        versionName rootProject.ext.jcenter.versionName
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

install {
    repositories.mavenInstaller {
        pom {
            project {
                packaging 'aar'
                name rootProject.ext.jcenter.name
                description rootProject.ext.jcenter.description
                url rootProject.ext.jcenter.siteUrl
                licenses rootProject.ext.jcenter.licenses
                developers {
                    developer {
                        id rootProject.ext.jcenter.authorId
                        name rootProject.ext.jcenter.authorName
                        email rootProject.ext.jcenter.authorEmail
                    }
                }
                scm {
                    connection rootProject.ext.jcenter.gitUrl
                    developerConnection rootProject.ext.jcenter.gitUrl
                    url rootProject.ext.jcenter.siteUrl
                }
            }
        }
    }
}

// 生成jar包的task
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

// 生成javaDoc的jar
task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}
artifacts {
    archives javadocJar
    archives sourcesJar
}

//设置编码格式,如果不设置可能会在gradlew install的时候出现GBK编码映射错误
javadoc {
    options {
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/8/docs/api"
    }
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = rootProject.ext.jcenter.name
        websiteUrl = rootProject.ext.jcenter.siteUrl
        vcsUrl = rootProject.ext.jcenter.gitUrl
        licenses = [rootProject.ext.jcenter.licenseName]
        publish = true
    }
}

7.编译打包Library、上传到bintray

执行命令gradlew install 进行编译

执行命令gradlew bintrayUpload 进行上传bintray 

出现BUILD SUCCESSFUL表示完成

期间可能会碰到如下问题

  • -bash: gradlew: command not found

解决方法

gradlew clean

8.添加到Jcenter

进入到你的bintray个人中心,进入到maven 

点击Add to JCenter,申请添加到jcenter,会进入到申请页,会有输入框要求写备注,这个是可选的也可以不写直接确定。 
接下来等它审核通过就可以使用了,一般半天就可以审核完成

审核通过后就可以直接在项目中引用了

引入的格式由groupIdmodule nameversionName组成

猜你喜欢

转载自blog.csdn.net/wei11556/article/details/83614719