前面咱們使用本身封裝的okhttp項目時候,只須要app/build.gradle文件中加一行代碼就能使用項目。java
compile 'com.ansen.http:okhttpencapsulation:1.0.1'
那是由於我以前就把封裝的module提交到了jcenter服務器。因此android sutdio把從jcenter服務器把類庫下載下來。android
當咱們作好一個輪子的時候,或者項目中有一些好的module想分享給別人用的時候,首先把代碼提交到github(全球男性交友平臺)上開源,可是這還不夠,別人拿你的代碼做爲module依賴太麻煩了,比較酷的方法應該是一行代碼引用。git
這個網站註冊有點坑爹,有兩種方式(企業版跟我的免費版),我的版的項目必需要開源,我的註冊地址以下:github
https://bintray.com/signup/oss
必定要注意不要註冊了企業版,無法直接切換成我的版,必需要得試用期太重新註冊。用我貼的連接註冊就行。還有註冊郵箱不能是國內163郵箱或者qq郵箱,我用的是google郵箱註冊的。web
登陸jcenter帳號,進入用戶首頁,點擊Add New Repository按鈕。
apache
進入Add New Repository頁面,Name輸入框輸入module名稱(okhttpencapsulation),Type選擇Maven。而後點擊最後的Create按鈕,Repository就建立成功了。
windows
項目的build.gradle中加入以下代碼:api
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
修改後效果圖以下:
android-studio
修改要上傳的module下的build.gradle。例如我這邊路徑是:OkHttpEncapsulation/okhttpencapsulation/build.gradle。在文件尾部增長以下代碼:服務器
// 這裏添加下面兩行代碼。 apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' // 定義兩個連接,下面會用到。 def siteUrl = 'https://github.com/ansen666/OkHttpEncapsulation' // 項目主頁。 def gitUrl = 'https://github.com/ansen666/OkHttpEncapsulation.git' // Git倉庫的url。 group = "com.ansen.http"// 惟一包名,好比compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的com.ansen.http就是這裏配置的。 version = "1.0.1"//項目引用的版本號,好比compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的1.0.1就是這裏配置的。 install { repositories.mavenInstaller { // 生成pom.xml和參數 pom { project { packaging 'aar' // 項目描述,複製個人話,這裏須要修改。 name 'okhttpencapsulation'// 可選,項目名稱。 description 'okhttp project describe'// 可選,項目描述。 url siteUrl // 項目主頁,這裏是引用上面定義好。 // 軟件開源協議,如今通常都是Apache License2.0吧,複製個人,這裏不須要修改。 licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } //填寫開發者基本信息,複製個人,這裏須要修改。 developers { developer { id 'ansen' // 開發者的id。 name 'ansen' // 開發者名字。 email 'iprivateworkemail@gmail.com' // 開發者郵箱。 } } // SCM,複製個人,這裏不須要修改。 scm { connection gitUrl // Git倉庫地址。 developerConnection gitUrl // Git倉庫地址。 url siteUrl // 項目主頁。 } } } } } // 生成jar包的task,不須要修改。 task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = 'sources' } // 生成jarDoc的task,不須要修改。 task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) // destinationDir = file("../javadoc/") failOnError false // 忽略註釋語法錯誤,若是用jdk1.8你的註釋寫的不規範就編譯不過。 } // 生成javaDoc的jar,不須要修改。 task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives javadocJar archives sourcesJar } // 這裏是讀取Bintray相關的信息,咱們上傳項目到github上的時候會把gradle文件傳上去,因此不要把賬號密碼的信息直接寫在這裏,寫在local.properties中,這裏動態讀取。 Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) bintray { user = properties.getProperty("bintray.user") // Bintray的用戶名。 key = properties.getProperty("bintray.apikey") // Bintray剛纔保存的ApiKey。 configurations = ['archives'] pkg { repo = "okhttpencapsulation" //Repository名字 須要本身在bintray網站上先添加 name = "okhttpencapsulation"// 發佈到Bintray上的項目名字,這裏的名字不是compile 'com.ansen.library:circleimage:1.0.1'中的circleimage。 userOrg = 'anhui'//Bintray的組織id websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish = true // 是不是公開項目。 } }
都有註釋,當有時候的時候直接複製代碼就行。而後修改一些值。在最後的bintray裏面有從local.properties文件中獲取用戶名跟apikey。這是保密信息,咱們不能暴露給別人,build.gradle文件咱們會提交到git服務器上,可是local.properties文件不會提交。
打開OkHttpEncapsulation/local.properties文件,在尾部添加兩行,這個key是我隨便修改過的,是個錯誤的key,須要本身去替換:
bintray.user=anhui bintray.apikey=ac8137c9138a8b49a18a323260041fcf1f75a6f
user是咱們註冊的名字,apikey須要去jcenter官網查看。進入修改用戶界面,點擊左側apikey按鈕,而後輸入密碼就能看到了。把這個key複製到local.properties中替換掉。
上傳項目到jcenter須要用到gradle命令,首先把gralde加入到環境變量。mac下加入環境變量教程,windows環境不會加入環境變量的自行搜索下:
http://blog.csdn.net/u013424496/article/details/52684213
在android studio底部有個Terminal的按鈕。點擊它進入Terminal界面。
輸入命令:
gradle install
出現BUILD SUCCESSFUL就表示成功了。
繼續輸入命令,提交項目到bintray:
gradle clean build bintrayUpload
這個命令會提示上傳進度,上傳到100%就成功了最後也會出現BUILD SUCCESSFUL。到了這一步你的進度條已經到了90%了,就差最後一步了。
咱們提交成功了以後呢趕忙打開jcenter官網看看有沒有成功。在首頁點擊咱們的package(okhttpencapsulation)名稱,在這個頁面應該就能看到咱們提交的項目了,點擊項目進入項目詳細頁。
咱們能夠看到版本,看到gradle在線引用的代碼,還能切換到Maven跟lvy方式。而後右邊有個Add to JCenter,每一個項目剛剛提交都必需要審覈的,因此咱們點擊Add to JCenter去進行審覈。審覈成功就能一行代碼引用這個module啦。
若是你想第一時間看個人後期文章,掃碼關注公衆號,每週不按期推送Android開發實戰教程文章...
Android開發666 - 安卓開發技術分享 掃描二維碼加關注