使用Gradle提交自己開源Android庫到Maven中心庫

以下內容爲原創,歡迎轉載,轉載請註明

來自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4388175.html 

 

此文針對開源愛好者。

如果你想讓別人使用你的Android開源庫,第一種方法是,提供你的Github地址,讓別人clone一份,然後讓別人import到他的項目中。另一種更簡單的方式就是直接讓別人在他的Gradle中添加你的庫依賴,如下:

compile 'com.github.wangjiegulu:AndroidBucket:1.0.1'

如果想使用第二種方式,你需要將你的項目提交到公共的中心庫。

這裏介紹使用sonatype來把你的開源庫(snapshot或release)提交到Maven的中心庫。

1. 首先,在https://issues.sonatype.org中註冊賬號。

2. 然後在https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134中新建一個“Project ticket”。

-Summary:填寫項目名稱

-Description:填寫描述

-Group Id:域名反轉,如果沒有域名,就直接使用github反轉(如github.com/wangjiegulu --> com.github.wangjiegulu),具體看http://central.sonatype.org/pages/choosing-your-coordinates.html

-Project URL:項目的url,可以是項目的github地址。如https://github.com/wangjiegulu/AndroidBucket

-SCM url:版本控制的uri,如https://github.com/wangjiegulu/AndroidBucket.git

3. 創建完畢後就等待狀態變爲“resolved”,然後你就可以使用Gradle上傳項目了。

4. 上傳前需要進行GPG簽名,所以先去下載GPG(https://www.gnupg.org/download/index.html),然後打開

新建一個Keychain,完成後右鍵“Send Public Key to Key Server”,這樣就能把你的public key發送到服務端。

5. 然後我們再打包項目的aar文件,intellij idea和android studio使用gradle構建後,會在build中自動生成該文件,直接把他拷出來即可。

6. 然後新建build.gradle來進行我們的上傳操作,大概內容如下:

複製代碼

// *********************************************************************apply plugin: 'maven'apply plugin: 'signing' //使用signing plugin做數字簽名//定義GroupID和Version,ArtefactID會自動使用Project名group = 'com.github.wangjiegulu'version = '1.0.1'repositories {
    mavenCentral();
}

artifacts {
    archives file('AndroidBucket.aar')
}
signing {
    sign configurations.archives
}uploadArchives {
    repositories {
        mavenDeployer {            //爲Pom文件做數字簽名
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }            //指定項目部署到的中央庫地址,UserName和Password就是Part 1中註冊的賬號。
            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                authentication(userName: o***hUsername, password: o***hPassword)
            }
            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                authentication(userName: o***hUsername, password: o***hPassword)
            }            //構造項目的Pom文件,參見Part 2中Pom文件的規範,不要遺漏必填項            pom.project {
                name project.name
                packaging 'aar'
                description 'Android開發常用整理'
                url 'https://github.com/wangjiegulu/AndroidBucket'

                scm {
                    url 'scm:[email protected]:wangjiegulu/AndroidBucket.git'
                    connection 'scm:[email protected]:wangjiegulu/AndroidBucket.git'
                    developerConnection '[email protected]:wangjiegulu/AndroidBucket.git'
                }

                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution 'wangjie'
                    }
                }

                developers {
                    developer {
                        id 'wangjie'
                        name 'Wagn Jie'
                        email '[email protected]'
                    }
                }
            }
        }
    }
}

複製代碼

archives file('AndroidBucket.aar') 表示指定上傳的aar文件。

signing {
    sign configurations.archives
}

表示對內容進行gpg簽名,既然需要簽名,那需要在gradle.properites中配置key的信息,還有上傳的賬號密碼:

signing.keyId=XXXXXXXXX
signing.password=XXXXXXXXXsigning.secretKeyRingFile=/Users/wangjie/.gnupg/secring.gpg

  o***hUsername=oss.sonatype.org或者issues.sonatype.org的賬號(同一個)
  o***hPassword=oss.sonatype.org或者issues.sonatype.org的密碼(同一個)

所有配置完畢後執行gradle uploadArchives進行上傳操作。

7. 登錄https://oss.sonatype.org,點擊左邊的“Staging Repositories”,然後剛剛上傳的項目名稱爲com.github.wangjiegulu去掉點-數字

選中後點擊“Close”,如果成功,則再點擊“Release”按鈕發佈。

然後再等待2小時,就可以在Maven中心庫中搜索到了。

 

注意:以後如果需要再上傳其它項目的時候,直接從第4步開始即可,因爲你的groupId已經申請過了,以後新的artifacts可以直接部署到這個groupId中。

 

參考:http://central.sonatype.org/pages/o***h-guide.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章