如何使Android Studio項目發佈到Jcenter中

来源:http://www.cnblogs.com/miaoqing/archive/2016/06/14/5584274.html
-Advertisement-
Play Games

Android倉庫 簡單的普及下關於android的依賴倉庫,有兩種分別是Jcenter與Maven Central其實不管是Jcenter還是Maven Central都是Maven庫。 Jcenter Jcenter是由bintray.com維護,在Android Studio的項目根目錄的bu ...


Android倉庫

簡單的普及下關於android的依賴倉庫,有兩種分別是JcenterMaven Central其實不管是Jcenter還是Maven Central都是Maven庫。

Jcenter

Jcenter是由bintray.com維護,在Android Studio的項目根目錄的build.gradle中我們會看到自動幫我們實現的Jcenter

buildscript {
    repositories {
        jcenter()
    }
}

Maven Central

當然也可以在build.gradle中定義Maven Central

buildscript {
    repositories {
        mavenCentral()
    }
}

至於在Android Studio中為什麼預設使用Jcenter原因還是有的,感興趣的可以自己去查,我要說的一點就是,這裡你可以認為JcenterMaven Central的超集,這樣就能更好的理解為什麼要使用Jcenter了。

gradle獲取library

這裡要瞭解一下我們看到的依賴所定義的方式,其實是有格式的並不是隨便亂寫的。其實你只要平常夠仔細就能發現他們的格式是一樣的。
GroupIdArtifactIdVersionId組成。例如com.jakewharton:butterknife:6.1.0'它的GroupIdcom.jakewhartonArtifactIdbutterknifeVersionId6.1.0。現在看這些依賴是不是更清晰了呢。當我們添加了依賴之後gradle會先去Maven中查找是否有該library如果有就會使用上面定義的形式下載http://jcenter.bintray.com/GroupId/ArtifactId/VersionId

http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0

http://www.codesocang.com/anzhuoyuanma/
通過該鏈接下載到本地再與我們的項目結合。

下麵正式進行實現依賴的實現

註冊

首先要在https://bintray.com 中註冊賬號,註冊都是很簡單的就不所說了。
然後回到主頁在你的Owned Repositories中看下你是否已經添加了maven

第一次註冊的應該沒有,所以我們要先New Repository創建maven

創建之後會自動跳轉到maven中,你會發現沒有package,我們可以Add New Package這種相信都會,我這裡要說的是另外一種,我們直接在Android Studio中進行配置然後上傳到Bintray

代碼中配置

分離成多個Module

為了使別人能更好的使用,我們一般在實現自己的依賴的時候會把實現的該依賴的源碼作為一個Module,再把實例代碼作為Application Module。所以我們要事先處理好Module,下麵是我弄好的示例

添加bintray插件

在分了Module之後,首先在項目的根目錄build.gradle
dependencies中添加bintray插件

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3

添加bintray認證

找到local.properties文件在其中添加

bintray.user=xxxx
bintray.apikey=xxx

bintray.user是註冊的user,至於bintray.apikeyJFrog Bintray中的Your ProfileEdit頁面的API Key中能找到。

修改Module中的build.gradle

在其中添加如下示例代碼:

apply plugin: 'com.android.library'

ext {
    bintrayRepo = 'maven'
    bintrayName = 'mypicker'

    publishedGroupId = 'com.idisfkj.picker'
    libraryName = 'MyPicker'
    artifact = 'mypicker'

    libraryDescription = 'A pickerView on Android'

    siteUrl = 'https://github.com/idisfkj/idisfkj.picker'
    gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git'

    libraryVersion = '1.2.1'

    developerId = 'idisfkj'
    developerName = 'idisfkj'
    developerEmail = 'idisfkj@qq.com'

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}

同時在最後添加兩個腳本

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

這是我這個依賴的示例。其中bintrayRepo是預設的使用mavenmypicker是建立的package namesiteUrl是你的項目地址,我的項目在github上,所以是github項目的地址形式。gitUrlVCS。其他應該沒什麼問題,相應的改成自己的信息。

這樣就構建好了依賴com.idisfkj.picker:mypicker:1.2.1

上傳到bintray

打開Android Studio的終端

編譯library文件

在終端輸入

./gradlew install

出現BUILD SUCCESSFUL就沒問題

上傳

在終端輸入

./gradlew bintrayUpload

一樣的出現BUILD SUCCESSFUL就沒問題
然後你進入JFrog Bintray進入maven你就會發現其中多了一個package,如果有的話那就表示完美成功。

同步到Jcenter

完成了上面的步驟並不代表別人可以直接使用

dependencies {
    compile 'com.idisfkj.picker:mypicker:1.2.1'
}

還要添加

repositories {
    maven {
        url 'https://dl.bintray.com/idisfkj/maven/'
    }
}

所以我們要同步到Jcenter中,怎麼同步呢?別急,只要在你剛剛生成的package中點擊Add to Jcenter即可。

進去之後直接發送就可以,不需要填寫什麼。

最後就是等待了。幾個小時之後你會收到考核通過的消息,再返回package就會發現Linked to發生了變化。

現在你也可以通過http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。

同時別人也能使用你的依賴,通過如下簡單的配置

dependencies {
    compile 'com.idisfkj.picker:mypicker:1.2.1'
}

版本更新

對於版本更新,只要更改上面配置的版本號libraryVersion = '1.2.1'改成你要更新的版本,其它不變。再重新上傳到bintray

總結

我這裡再來整理下上傳的思路。

  • 既然要上傳到Jcenter上,自然要去https://bintray.com 中註冊賬號

  • 根據自己的需求創建mavenRepository

  • 把項目分離成Module

  • 在項目根目錄的build.gradle中添加bintray插件

  • local.properties中添加bintray認證

  • 修改Module中的build.gradle中的配置

  • Android Studio終端使用./gradlew xxx上傳

  • 最後在JFrog Bintray中同步到Jcenter

好了,就到這裡了,希望有所幫助!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前用一張圖分析了Google給出的MVP架構,但是在Google給出的所有案例裡面除了基本的MVP架構還有其它幾種架構,今天就來分析其中的Clean架構。同樣的,網上介紹Clean架構的文章很多,我也就不用文字過多敘述了,還是用一張類圖來分析一下Clean架構的這個案例吧。好了,先直接上圖! 上完 ...
  • 1、進程 什麼是進程 進程是指在系統中正在運行的一個應用程式 每個進程之間是獨立的,每個進程均運行在其專用且受保護的記憶體空間內 比如同時打開迅雷、Xcode,系統就會分別啟動2個進程 2、線程 什麼是線程 1個進程要想執行任務,必須得有線程(每1個進程至少要有1條線程) 一個進程(程式)的所有任務都 ...
  • 在《Android 常用數據適配器ArrayAdapter》中介紹了ArrayAdapter數據適配器。但是存在一個缺陷,那就是條目的圖標都固定相同,要顯示每個條目的圖標都不相同,那麼使用SimpleAdapter 新建項目後,在layout文件夾下新建list_item.xml文件,接著編輯佈局, ...
  • android:nextFoucsUp padding是站在父view的角度描述問題,它規定它裡面的內容必須與這個父view邊界的距離。margin則是站在自己的角度描述問題,規定自己和其他(上下左右)的view之間的距離,如果同一級只有一個view,那麼它的效果基本上就和padding一樣了 ...
  • GUI 是任何系統都很重要的一塊。 android GUI大體分為4大塊。 1)SurfaceFlinger 2)WMS 3)View機制 4)InputMethod 這塊內容非常之多,但是理解後,可以觸類旁通,其實現在主流的系統,包括andorid,ios在構架上,都是有很多相識之處。 我們先來講 ...
  • 接著上篇文章《Android 採用Layout Inflater創建一個View對象》,本文采用常用數據適配器ArrayAdapter 新建項目後,在layout文件夾下新建list_item.xml文件,接著編輯佈局,代碼如下: 接著在MainActivity中添加代碼: 運行一下: ArrayA ...
  • 關於APP啟動引導頁面模塊 時間:2016年6月14日 作者:趙銳 模塊使用說明 模塊暴露在外的介面是- (void)showGuideViewWithImages:(NSArray *)images;調用時候需要傳入引導頁圖片的名字數組即可。 註意:調用該方法需要在- (void)viewDidA ...
  • 接著上文《Android ListViewview入門》,本文使用android的Inflater來實現 在layouyt文件夾中新建一個list_item.xml的文件,添加如下代碼: 界面佈局如下: 代碼如下: 運行後的效果如下: 如果將上面的代碼tv_id.setText("id:" +per ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...