【Android&Jcenter】將Gradle Android Library上傳到j(luò)center詳細步驟

1.去jcenter官網(wǎng)注冊個賬號

https://bintray.com

51.png

2.在項目根目錄下build.gradle文件中的dependencies節(jié)點中追加如下代碼:

注:保持你的library module的名字同artifactId一樣遭铺,因為在Bintray上你的項目的maven-metadata.xml文件的路徑是gruopId+"/"+module名稱砍的。例如你的包名是com.renkuo.personal.utilslibrary,groupId是com.renkuo.personal,artifactId是utilslibrary炎码,module名稱是utilslibrary,這樣便于別人引用時很容易找到資源

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'

build.gradle示例如下

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
    }
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

其中:
android-maven-gradle-plugin插件是用來打包Maven所需文件的
gradle-bintray-plugin插件是用來將生成的Maven所需文件上傳到Bintray的

3.添加project.properties文件并放到你的library module目錄下

#project
project.name=UtilisLibrary
project.groupId=com.renkuo.personal
project.artifactId=utilslibrary
project.packaging=aar
project.siteUrl=https://github.com/renkuo/UtilsLibraryDemo
project.gitUrl=https://github.com/renkuo/UtilsLibraryDemo.git

#javadoc
javadoc.name=UtilisLibrary
  • project.name:項目名稱
  • project.groupId:項目組ID材鹦,通常情況下如果你的包名為com.renkuo.personal.utilslibrary碟狞,那么項目組ID就是com.renkuo.personal
  • project.artifactId:項目ID,通常情況下如果你的包名為com.renkuo.personal.utilslibrary缓待,那么項目ID就是utilslibrary
  • project.packaging:包類型蚓耽,Android庫是aar
  • project.siteUrl:項目官方網(wǎng)站的地址,沒有的話就用Github上的地址旋炒,例如:https://github.com/renkuo/UtilsLibraryDemo
  • project.gitUrl:項目的Git地址步悠,例如:https://github.com/renkuo/UtilsLibraryDemo.git
  • javadoc.name:生成的javadoc打開后主頁顯示的名稱,通常跟項目名稱一樣即可

4.添加local.properties文件并放到你的library module目錄下

#bintray
bintray.user=huoleifeng
bintray.apikey=**************************************

#developer
developer.id=renkuo
developer.name=renkuo
developer.email=renkuo0617@gmail.com
  • bintray.user:你的Bintray的用戶名
  • bintray.apikey:你的的Bintray的API Key
  • developer.id:通常是你在開源社區(qū)的昵稱
  • developer.name:你的姓名
  • developer.email:你的郵箱

其中apikey獲取方式如下圖
注:一定要將local.proerties文件加入忽略列表瘫镇,以免被提交到Github或其他網(wǎng)站泄露個人信息
①.點擊Edit Profile選項

5856.png
②.點擊API Key選項然后確認一下密碼
75815.png

5.添加本地bintrayUpload.gradle文件并放到你的library module目錄下

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

// load properties
Properties properties = new Properties()
File localPropertiesFile = project.file("local.properties");
if(localPropertiesFile.exists()){
    properties.load(localPropertiesFile.newDataInputStream())
}
File projectPropertiesFile = project.file("project.properties");
if(projectPropertiesFile.exists()){
    properties.load(projectPropertiesFile.newDataInputStream())
}

// read properties
def projectName = properties.getProperty("project.name")
def projectGroupId = properties.getProperty("project.groupId")
def projectArtifactId = properties.getProperty("project.artifactId")
def projectVersionName = android.defaultConfig.versionName
def projectPackaging = properties.getProperty("project.packaging")
def projectSiteUrl = properties.getProperty("project.siteUrl")
def projectGitUrl = properties.getProperty("project.gitUrl")

def developerId = properties.getProperty("developer.id")
def developerName = properties.getProperty("developer.name")
def developerEmail = properties.getProperty("developer.email")

def bintrayUser = properties.getProperty("bintray.user")
def bintrayApikey = properties.getProperty("bintray.apikey")

def javadocName = properties.getProperty("javadoc.name")

group = projectGroupId

// This generates POM.xml with proper parameters
install {
    repositories.mavenInstaller {
        pom {
            project {
                name projectName
                groupId projectGroupId
                artifactId projectArtifactId
                version projectVersionName
                packaging projectPackaging
                url projectSiteUrl
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        id developerId
                        name developerName
                        email developerEmail
                    }
                }
                scm {
                    connection projectGitUrl
                    developerConnection projectGitUrl
                    url projectSiteUrl
                }
            }
        }
    }
}

// This generates sources.jar
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))
}

// Add compile dependencies to javadoc
afterEvaluate {
    javadoc.classpath += files(android.libraryVariants.collect { variant ->
        variant.javaCompile.classpath.files
    })
}

// This generates javadoc.jar
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

// javadoc configuration
javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version projectVersionName
        links "http://docs.oracle.com/javase/7/docs/api"
        title javadocName
    }
}

// bintray configuration
bintray {
    user = bintrayUser
    key = bintrayApikey
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = projectName
        websiteUrl = projectSiteUrl
        vcsUrl = projectGitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

然后修改你的library module的build.gradle文件鼎兽,在最后加上apply from: "bintrayUpload.gradle",如下所示:

apply plugin: 'com.android.library'
android {
    compileSdkVersion 26
    buildToolsVersion = "26.0.2"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

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

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
}
apply from: "bintrayUpload.gradle"

注:apply from: "bintrayUpload.gradle"一定要放在最后汇四,如果放在開頭的話匯報錯Error:Cause: android.compileSdkVersion is missing!如下圖:

174311.png

6.執(zhí)行命令打包并上傳到Bintray

打開終端進入項目目錄下接奈,執(zhí)行g(shù)radlew bintrayUpload命令

命令執(zhí)行完成后可能會報錯,如下圖所示:
175339.png
這是因為你新建的賬號中沒有建庫(已創(chuàng)建庫的可以忽略這個問題)通孽,步驟如下:

175601.png
75642.png

7. 請求提交你的項目到j(luò)center

上述步驟走完之后實際上只是上傳了你的項目到Bintray而已序宦,并沒有被包含在jcenter中,要想提交到j(luò)center中還需要Bintray的審核背苦。步驟如下:

①點擊進入你的maven項目列表
80310.png
②點擊選擇你要提交到j(luò)center的項目
0340.png

③點擊Add to JCenter互捌,然后在Comments輸入框里隨便填寫下信息,最后點Send提交請求即可(一般情況下審核需要4到5個小時行剂,耐心等待就行了秕噪,審核通過后會給你發(fā)郵件通知你,并且以后更新項目就不需要再審核了厚宰。)
180437.png

引用方式

點擊查看你添加到j(luò)center的庫腌巾,選擇gradle

`compile 'com.renkuo.personal:utilslibrary:1.0'`
12059.png

最后

JitPack也是一個代碼倉庫,等同于jCenter铲觉,目前用的人比較少澈蝙,但是已經(jīng)有越來越多的人開始使用了。它不像Jcenter那么麻煩撵幽,不需要上傳灯荧,編譯,審核盐杂《涸兀總之就是so eazy哆窿。大家有興趣可以參考我的另一片文章http://www.reibang.com/p/2b3eb6d26806

錯誤不足之處或相關(guān)建議歡迎大家評論指出,謝謝厉斟!如果覺得內(nèi)容可以的話麻煩喜歡(?)一下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挚躯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子擦秽,更是在濱河造成了極大的恐慌秧均,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件号涯,死亡現(xiàn)場離奇詭異,居然都是意外死亡锯七,警方通過查閱死者的電腦和手機链快,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眉尸,“玉大人域蜗,你說我怎么就攤上這事≡牖” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捧韵。 經(jīng)常有香客問我互亮,道長,這世上最難降的妖魔是什么坪蚁? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任奔穿,我火速辦了婚禮,結(jié)果婚禮上敏晤,老公的妹妹穿的比我還像新娘贱田。我一直安慰自己,他們只是感情好嘴脾,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布男摧。 她就那樣靜靜地躺著,像睡著了一般译打。 火紅的嫁衣襯著肌膚如雪耗拓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天扶平,我揣著相機與錄音帆离,去河邊找鬼。 笑死结澄,一個胖子當著我的面吹牛哥谷,可吹牛的內(nèi)容都是我干的岸夯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼们妥,長吁一口氣:“原來是場噩夢啊……” “哼猜扮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起监婶,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旅赢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后惑惶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煮盼,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年带污,在試婚紗的時候發(fā)現(xiàn)自己被綠了僵控。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡鱼冀,死狀恐怖报破,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情千绪,我是刑警寧澤充易,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站荸型,受9級特大地震影響盹靴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瑞妇,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一鹉究、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踪宠,春花似錦自赔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柬脸,卻和暖如春他去,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倒堕。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工灾测, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垦巴。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓媳搪,卻偏偏與公主長得像铭段,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子秦爆,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容