日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Gradle發(fā)布開源項目到MavenCentral

使用過 Android Studio 的同學應該都會對 Gradle 這個強大的構建系統(tǒng)留下了深刻的印象,Gradle 可以方便地集成各種開源庫,又能編寫自動化腳本處理任務,大有取代 Maven 之勢。 業(yè)余時間我有在維護一個開源項目,也收到了幾個 PR 要求發(fā)布到 Maven Central 以供 Gradle 使用,所以自己摸索著找了些文章,終于把項目發(fā)布上去了。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿(mào)網(wǎng)站建設與策劃設計,郾城網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:郾城等地區(qū)。郾城做網(wǎng)站價格咨詢:18982081108

大概有以下 5 個步驟:

  1. 到 issues.sonatype.org 注冊個帳號,申請發(fā)布權限
  2. 編寫 Gradle 自動化發(fā)布腳本
  3. 下載 GPGTools,創(chuàng)建 Signing Key
  4. 執(zhí)行 Gradle 發(fā)布腳本
  5. 申請激活 Maven Central Sync 進程

其中***步和第五步都需要人工審核,兩個工作日(美帝時間)內(nèi)會有答復。

1. 申請 Maven Central 發(fā)布權限

將你的項目主要信息放到 issue 里面就好了,其中 Group Id 要謹慎填寫,申請通過后,你只能在你的 Group Id下發(fā)布項目。

創(chuàng)建完 issue 后,靜候幾天,通過了就會給你發(fā)郵件。

2. 編寫 Gradle 發(fā)布腳本

感謝 Chris Banes 大神提供的腳本,稍作修改,弄了一個我自己的版本。

https://github.com/SpecialCyCi/AndroidResideMenu/blob/master/maven_push.gradle

將上面的腳本放到項目的根目錄下,然后到開源庫所在的 module 目錄,添加以下代碼 build.gradle :

apply from: '../maven_push.gradle'

修改項目根目錄下的gradle.properties,添加項目的信息:

VERSION_NAME=1.6
VERSION_CODE=8
POM_GROUP_ID=com.specyci
POM_DESCRIPTION=....
POM_URL=https://github.com/SpecialCyCi/AndroidResideMenu
POM_SCM_URL=https://github.com/SpecialCyCi/AndroidResideMenu
POM_SCM_CONNECTION=scm:git@github.com:SpecialCyCi/AndroidResideMenu.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:SpecialCyCi/AndroidResideMenu.git
POM_LICENCE_NAME=The MIT License (MIT)
POM_LICENCE_URL=https://raw.githubusercontent.com/SpecialCyCi/AndroidResideMenu/master/LICENSE
POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=specialcyci
POM_DEVELOPER_NAME=Special Leung
POM_INCEPTION_YEAR=2013

***到開源庫所在的 module 目錄,添加編譯信息到 gradle.properties :

 
 
  1. POM_NAME=AndroidResideMenu
  2. POM_ARTIFACT_ID=residemenu
  3. POM_PACKAGING=aar

3. 下載 GPGTools,創(chuàng)建 Signing Key

Signing Key 可以看作是作者信息的一個簽名,簽名分為 public 和 private,其中 public key 要上傳到keyservers.net 儲存。

先在本地命令行生成 Signing Key :

  AndroidResideMenu git:(master) gpg --gen-key

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 8192 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Special Leung(Testing)
Email address: specialcyci+test@gmail.com
Comment: This is just a testing key.
You selected this USER-ID:
    "Special Leung(Testing) (This is just a testing key.) "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

...
pub   2048R/8C1761A2 2015-01-24
      Key fingerprint = xxx
uid       [ultimate] Special Leung(Testing) (This is just a testing key.) 
sub   2048R/E32D1186 2015-01-24

然后把 public key 上傳到 keyservers.net :

$ gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 8C1761A2
gpg: sending key 8C1761A2 to hkp server pool.sks-keyservers.net

***將 Signing Key 的信息填充到 ~/.gradle/gradle.properties :

# 查看 key 信息
  ~  gpg --list-secret-keys
/Users/special/.gnupg/secring.gpg # <- key 目錄
---------------------------------
sec   2048R/8C1761A2 2015-01-24   # <- 8C1761A2 是 key id
uid                  Special Lenung(Testing) (This is just a testing key.) 
ssb   2048R/E32D1186 2015-01-24
# ~/.gradle/gradle.properties

signing.keyId=8C1761A2
signing.password=password
signing.secretKeyRingFile=/Users/special/.gnupg/secring.gpg
nexusUsername=username
nexusPassword=password

4. 執(zhí)行 Gradle 發(fā)布腳本

%GRADLE_HOME%/bin/gradle uploadArchives

如果版本名含有 SNAPSHOT 字串,項目將會上傳到 snapshots 節(jié)點;如果要發(fā)布到 Maven Central 的正式庫,去掉版本名中的 SNAPSHOT 就可以,SNAPSHOT 版本不需要進行第五步 Central Sync。

Snapshots 節(jié)點:https://oss.sonatype.org/content/repositories/snapshots

5. 激活 Maven Central Sync 進程

第 4 步成功了的話,就可以在 oss.sonatype.org (https://oss.sonatype.org/) 的 stagingRepositories 看到項目了,然后按下「Close」,準備發(fā)布項目。

成功 Close 了項目后,到***步的 issue 地址,發(fā)個評論讓工作人員給你開啟 Sync 進程,這個一般一個工作日就有答復。

在工作人員回復可以之后,執(zhí)行「Release」操作,沒啥意外的話,兩小時后就可以在 search.maven.org 搜到你的項目了。

6. 結語

總的來說,發(fā)布還是挺方便的,人工審核可能會浪費點時間,偶爾還可能遇到些問題,不過 sonatype 還是很專業(yè)的,將你遇到的問題告訴他們之后,都可以得到一個有效的解決辦法。

不過最近 Android Studio 把 jCentral 作為默認的節(jié)點了,也許下次就得折騰 jCentral 了。


網(wǎng)站標題:使用Gradle發(fā)布開源項目到MavenCentral
分享網(wǎng)址:http://www.5511xx.com/article/djcjggj.html