一、創建Bintray賬戶及Maven倉庫
1、打開Bintray首頁,點擊 For an Open Source Account
,快速註冊或者用第三方的賬戶登陸即可。
2、個人頁面點擊 Add New Repository 創建一個 Mavne 倉庫
3、填寫倉庫信息,倉庫名稱記住,後面有用
二、上傳項目到jcenter
1、配置Android項目
在項目的根目錄的build.gradle中添加如下代碼:
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
在需要上傳的module工程的根目錄下創建j-build.gradle文件,文件內容如下:
// 這裏添加下面兩行代碼。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
// 定義兩個鏈接,下面會用到。
def siteUrl = 'https://github.com/881205wzs/UItraPullToRefresh' // 項目主頁。
def gitUrl = 'https://github.com/881205wzs/UItraPullToRefresh.git' // Git倉庫的url。
// 唯一包名,比如implementation 'com.davis.ui.pulltorefresh:pulltorefresh:2.1.0'中的com.davis.ui.pulltorefresh就是這裏配置的。
group = "com.davis.ui.pulltorefresh"
//項目引用的版本號,比如implementation 'com.davis.ui.pulltorefresh:pulltorefresh:2.1.0'中的2.1.0就是這裏配置的。
version = "2.1.0"
install {
repositories.mavenInstaller {
// 生成pom.xml和參數
pom {
project {
packaging 'aar'
// 項目描述,複製我的話,這裏需要修改。
name 'uitrapulltorefresh'// 可選,項目名稱。
description 'UItraPullToRefresh 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 'wzs' // 開發者的id。
name 'daivs' // 開發者名字。
email '[email protected]' // 開發者郵箱。
}
}
// 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 = "maven" //Repository名字 需要自己在bintray網站上先添加
name = "UItraPullToRefresh"// 發佈到Bintray上的項目名字,這裏的名字不是implementation 'com.davis.ui.pulltorefresh:pulltorefresh:2.1.0'中的pulltorefresh。
userOrg = 'wzs'//Bintray的組織id
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true // 是否是公開項目。
}
}
注:在最後的bintray裏面有從local.properties文件中獲取用戶名跟apikey。這是保密信息,我們不能暴露給別人,build.gradle文件我們會提交到git服務器上,但是local.properties文件不會提交
。
local.properties文件,在尾部添加兩行,這個key是我隨便修改過的,是個錯誤的key,需要自己去替換:
bintray.user=wzs
bintray.apikey=ac8137c9138a8b49a18a323260041fcf1f75a6f
user是我們註冊的名字,apikey需要去jcenter官網查看。進入修改用戶界面,點擊左側apikey按鈕,然後輸入密碼就能看到了。把這個key複製到local.properties中替換掉。
然後我們在module根目錄的build.gradle文件末尾添加如下代碼:
apply from: 'j-build.gradle'
2、Gradle命令上傳
上傳項目到jcenter需要用到gradle命令,首先把gralde加入到環境變量。如何配置環境變量這裏就不在贅述。
在android studio底部有個Terminal的按鈕。點擊它進入Terminal界面。
依次執行如下命令:
gradle clean
gradle install
出現BUILD SUCCESSFUL就表示成功了。
然後繼續輸入命令,提交項目到bintray:
gradle bintrayUpload
這個命令會提示上傳進度,上傳到100%就成功了最後也會出現BUILD SUCCESSFUL。到了這一步你的進度條已經到了90%了,就差最後一步了。
3、在項目中引用
獲取你的 Maven URL 並配置在需要使用的項目根目錄的build.gradle 中。
maven { url 'https://dl.bintray.com/wzs/maven'}
可以在 Moudle 的 build.gradle 文件中添加依賴引用了。
implementation 'com.davis.ui.pulltorefresh:pulltorefresh:2.1.0'
在 Bintray lib overview 中可以找到 maven、gradle、ivy 等配置引用方式
現在你的 lib 可以正常使用了,自己用還好,如果是分享給別人用,所有人都需要在各自的 Project 的 build.gradle 中添加 maven{url ‘https://dl.bintray.com/wzs/maven’} ,否則他們無法下載你的 lib,所以很有必要將你的 lib 同步到 Jcenter 庫,因爲 Jcenter 是一個標準託管庫,幾乎所有 build.gradle 中都會包含 jcenter() 以便訪問。
4、Add to JCenter
首先先進入到你上傳的庫的路徑下,然後點擊 Actions > Add to jcenter添加自己的lib。
這裏根據你的 lib 情況選擇,如果不是 pom 項目,只勾選第二項即可。
或者通過https://bintray.com/beta/#/bintray/jcenter
可以打開 jcenter 倉庫,然後點擊 Actions > Include My Package 添加你自己的 lib。
Send,然後等待審覈通過吧。
三、Demo示例
本篇示例代碼已上傳至Github:UItraPullToRefresh