Android 發佈Library到Jcenter

前言

習慣了 compile ‘com.android.support:appcompat-v7:24.2.1’ 這種依賴第三方庫的方式,簡直不要太爽。那爲什麼這麼一句話就可以引入一個第三方庫呢?這全是Jcenter的功勞,Jcenter不知道是什麼?那真的可以自己Google一下了。


現在我們自己嘗試一下把自己的Library上傳到Jcenter,這裏我用自己以前開源的項目Updater當例子來試一試。(強行安利一波,手動斜眼)

> https://github.com/simplepeng/Updater

## 註冊賬號 > https://bintray.com/ 可以直接使用github賬號登錄,倒是挺方便的。

獲取api key

這裏寫圖片描述
這裏寫圖片描述

配置Library

配置剛纔的api key
這裏寫圖片描述

配置project下的build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        //加的配置項
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:+'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        //
    }

配置library下的build.gradle

apply plugin: 'com.android.library'
//新加的配置
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
//
android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

//新加的配置
// 這個version是區分library版本的,更新library時記得修改這個version
// 這個version影響後面的引用
version = "1.0.0"

def siteUrl = 'https://github.com/simplepeng/Updater'   // 項目的主頁
def gitUrl = 'https://github.com/simplepeng/Updater.git'   // Git倉庫的url
group = "com.simplepeng"            // 一般填你唯一的包名(格式很重要,一定要是xx.xx)
install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                // 添加描述
                name 'updater for android'     //項目的描述
                url siteUrl
                // Set your license
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                    //填寫的一些基本信息
                        id 'simplepeng'        
                        name 'simplepeng'
                        email '[email protected]'
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}
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
}
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"
        //發佈到JCenter上的項目名字
        name = "updater"    
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

添加完後刷新一下gradle,然後在as自帶的命令行執行下面的兩條命令

./gradlew install

./gradlew bintrayUpload

等待BUILD SUCCESSFUL,然後就會在自己的倉庫看到上傳的library了

這裏寫圖片描述

接着講倉庫添加到jcenter

這裏寫圖片描述

最後就是默默的等待回覆了,國外的時間跟我們不一樣,有時候也會等很久。

總結

第一次上傳會比較慢,而且要審覈,之後更新就不會了。

關於

發佈了61 篇原創文章 · 獲贊 42 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章