Bintray項目發(fā)布-基礎(chǔ)

前言

發(fā)布項目的定義。發(fā)布項目到遠程JCenter倉庫,準確的說是發(fā)布項目構(gòu)件到JCenter倉庫,用英語說是Publishing artifacts to the JCenter。本文所說的發(fā)布項目都是指發(fā)布項目構(gòu)建后的生成物,即構(gòu)件(Artifacts)。

簡介。JCenter是JFrog公司旗下Bintray平臺上一個公開的Java倉庫。要發(fā)布項目到JCenter,首先需要發(fā)布項目到Bintray平臺,然后才能發(fā)布到它的公開庫——JCenter。

Bintray平臺上可以托管多種類型的庫,如比較流行的Maven和npm。

本文寫作目的。本文目的是介紹如何上傳Android Library項目構(gòu)件到Bintray Maven庫,并最終發(fā)布到JCenter這一整個流程。其實關(guān)于發(fā)布項目到JCenter這方面的介紹,網(wǎng)上已經(jīng)有許多文章了,官網(wǎng)也有用戶指南,那為什么我還有寫這篇文章呢?

  • 博客介紹不全。一般博客只是介紹如何使用Gradle插件如gradle-bintray-plugin等上傳項目Artifacts,但參數(shù)為什么要那樣配置?上傳失敗如何定位問題?等等都沒有介紹。如果不使用插件,又該如何做?
  • 官方用戶指南較凌亂。

源碼地址。本文涉及到的nicelogger項目Github地址:https://github.com/zhangliangnbu/nice-logger


Maven相關(guān)

詳細介紹請見Apach Maven。簡單講,Maven就是項目構(gòu)建和管理的工具,Maven倉庫就是利用Maven來管理項目的倉庫。

Maven倉庫文件規(guī)范

上傳文件到Maven倉庫有一定的規(guī)范。

對于Android項目,必須上傳的文件包括:

  • .aar文件。Android構(gòu)件特有文件,類似于.jar文件,但包含一些資源文件。
  • .pom文件。Maven倉庫中必須有的文件,XML格式,包含項目的所有信息,詳情請見POM Reference。

有些Maven倉庫審核比較嚴格,需要上傳另外的兩個文件:

  • -sources.jar文件。Java源碼文件。
  • -javadoc.jar文件。Java文檔文件。

POM文件

有四個必填的參數(shù),以著名的OkHttp項目作為示例進行說明如下:

  1. modelVersion。POM版本,一般都寫4.0.0,支持Maven 2和3。
  2. groupId。項目所在的項目組標識,如OkHttp所在的項目組標識是com.squareup.okhttp3。
  3. artifactId。項目的標識,如okhttp。
  4. version。項目當前版本號,如OkHttp項目的3.12.0

另外還有一個參數(shù)packaging,對于Android項目來一般不能缺少,它表示打包方式,默認是jar,Android項目一般為aar。

我們用Gradle解析依賴的時候,會這樣寫:implementation 'com.squareup.okhttp3:okhttp:3.12.0',其中com.squareup.okhttp3就是當前依賴的groupId,okhttp是依賴的artifactId,3.12.0是當前要解析的版本version。

注意:groupId、artifactIdversion都是非常重要的參數(shù),在上傳文件之前必須先定義好,在之后的過程中會用到。

Android項目基本POM文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.12.0</version>
  <packaging>aar</packaging>
</project>

文件名統(tǒng)一

發(fā)布到JCenter里的四個文件名稱必須統(tǒng)一如下:

  • {artifactId}-{version}.aar
  • {artifactId}-{version}-sources.jar
  • {artifactId}-{version}-javadoc.jar
  • {artifactId}-{version}.pom

用戶手冊

JFrog用戶指南。里面詳細介紹各種概念、使用、操作等。瀏覽一遍即可,有許多是用不上的。主要章節(jié)如下:

  • 了解核心概念:倉庫、包和版本。見章節(jié):Key Concepts
  • 了解發(fā)布的三個步驟:創(chuàng)建版本、上傳、發(fā)布。見章節(jié):UploadingUploads
  • 了解上傳的方法:UI手動、cURL、Maven、Gradle。見章節(jié):Maven Repositories

任何個人博客和文章都不能代替官方用戶手冊,這是必須要讀的,它應(yīng)當是一切非官方文檔的參考。


發(fā)布流程

一般發(fā)布流程如下:

  1. 準備工作。定義參數(shù);準備本地待發(fā)布項目;配置Bintray平臺賬號、倉庫、Package、版本。
  2. 生成構(gòu)件文件。本地生成待發(fā)布的構(gòu)件文件(包括POM文件)。
  3. 發(fā)布到Bintray。上傳和發(fā)布本地構(gòu)件文件到Bintray平臺。
  4. 發(fā)布到JCenter。發(fā)布Bintray平臺上的項目到JCenter。



發(fā)布方式

發(fā)布項目到JCenter有許多方式:

  1. UI手動上傳。通過Bintray網(wǎng)站UI,手動上傳項目構(gòu)件文件。
  2. cURL上傳。通過cURL調(diào)用REST API接口上傳。
  3. Maven上傳。使用Maven客戶端上傳項目構(gòu)件文件到Bintray平臺的maven倉庫。
  4. Gradle插件上傳。通gradle-bintray-pluginbintray-release等Gradle插件上傳。

不同的方式會導(dǎo)致發(fā)布流程略微有所不同,有些操作可以合并在一起。比如Gradle插件上傳方式中,創(chuàng)建pacakge、版本、創(chuàng)建構(gòu)件文件和上傳操作可以一起執(zhí)行。



準備工作說明

主要描述定義參數(shù)、準備本地項目和配置Bintray平臺這三步操作。

定義參數(shù)

  • Bintray平臺倉庫名稱。你要發(fā)布到哪個倉庫,當然要知道它的名稱了。我這里是android。
  • Bintray平臺Package名稱。沒有規(guī)定,我這里取為nicelogger。
  • POM文件groupId。沒有規(guī)定,一般為xxx.xxx.xxx,我這里取com.liang.android。
  • POM文件artifactId。沒有規(guī)定,我這里取nicelogger
  • POM文件version。版本號,我這里取0.0.1,作為第一個版本。

注意:Bintray平臺Package名稱和POM文件artifactId不必取相同的名稱,可以不一致。為了方便說明和記憶,我取為一致。

準備項目

可以創(chuàng)建一個然后發(fā)布到GitHub或者從GitHub fork一個。為了描述方便工程名稱為NiceLoggerDemo, Library Module名稱為nicelogger。

項目的GitHub地址在之后的配置中,需要用到。

配置Bintray平臺

  • 創(chuàng)建賬戶。如果已經(jīng)有賬戶了,就不用創(chuàng)建。在Bintray官網(wǎng)注冊賬號,參考官網(wǎng)指南-Creating an Account。
  • 創(chuàng)建Maven庫。如果已經(jīng)創(chuàng)建過Maven倉庫,可以不用創(chuàng)建。進入個人中心主頁,點擊“Add New Repository”,進入填寫倉庫信息頁。填寫信息:“Name”,看其他博客許多人寫了“maven”,我寫了“android”,表示是一個用于存儲Android項目的Maven倉庫,這個名字需要記住,以后使用Gradle插件上傳項目的時候用得著?!癟ype”選擇“Maven”。其他選填。點擊“Create”就可以創(chuàng)建一個Maven倉庫了。
  • 創(chuàng)建Package。用Gradle插件方式時可以不用手動創(chuàng)建。進入Maven倉庫,點擊“Add New Package”,進入倉庫信息填寫頁。信息填寫:“Name”填之前規(guī)定的nicelogger,“Version control”填你上傳到Github上的項目地址,其他選填。點擊“Create Package”即可。
  • 創(chuàng)建版本。用Gradle插件方式時可以不用手動創(chuàng)建。從Package頁面進入“Create New Version”頁面,“Name”填寫定義好的0.0.1,其他選填,點擊“Create Version”即可。

準備工作做好后,接下來就可以通過不同的方式進行后續(xù)操作了。



參考

  1. JCenter是什么
  2. Bintray官網(wǎng)
  3. JCenter倉庫
  4. JFrog用戶指南
  5. Apach Maven
  6. bintray-release
  7. 使用Gradle插件上傳Artifacts到Bintrary
  8. 使用Gradle插件上傳示例
  9. 博客-上傳Gradle項目到Maven倉庫
  10. 從Travis到Bintray

注:文章首發(fā)簡書和我的個人博客永恒的碼流。
個人博客會持續(xù)更新,但由于精力有限,其他平臺不能保證會更新。為了讀到最新版本的文章,建議讀我的個人博客。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容