發佈Library到JCenter

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組成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章