一、描述
分享一下上傳項目到Jcenter和Maven的一種方法,方法我百度看了有好多,我在這里整理一下。
二、上傳項目
(1)注冊一個Bintray賬號
(2)登陸成功,并且打開 View All ,看到Mavan時點擊選擇。
(3)選擇完Mavan,現在開始創建一個新的Package。
(4)填寫Name,這個Name需要與你的項目工程LIbrary相同的名字,Lincenses就圖片的Apache-2.0,最后的Version Control 就隨便填了,最后Create Package。
(5)這樣就創建完成,好了,現在可以開始配置LIbrary了。
(6)創建項目,并且創建Library,這里再提醒一下,創建的Library名字必須跟在Bintray中創建Package的名字相同。
(7)在UploadJcenter根目錄的build.gradle中,添加參數,第一個如果有了就不用重復添加了
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:latest.release'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
}
(8)在mytool中的build.gradle中,添加以下代碼,需要添加的代碼我都有注釋標明,并且這里說明一點,如果Bintray上沒有創建Package包的話,就會根據本地填寫的包名自動創建。
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'//需添加的
apply plugin: 'com.jfrog.bintray'//需添加的
version = "1.0.0" //需更改,這個是Library的版本后,每次更新的時候,版本需要不一樣
android {
compileSdkVersion 23
buildToolsVersion "24.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
lintOptions {//需添加的
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
//下面到結尾都是需要添加的
def siteUrl = 'https://github.com/' // 可默認,項目的主頁
def gitUrl = 'https://github.com/' //可默認, Git倉庫的url
group = "com.junwen.mytool" // 需更改,這個就是Library最后生成出來的包名,最后會成為這樣:compile 'com.junwen.mytool:mytool:1.0.0'
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
description 'my utils for test'
name 'Android Commonly used utils' // 可默認,項目描述
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer { // 可默認,開發者信息
id 'YOUR_ID'
name 'YOUR NAME'
email 'YOUR EMAIL'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
options.encoding = 'UTF-8'
source = 'src/main/java'
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
// 加載本地配置
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven" //發布到Bintray的那個倉庫里,默認賬戶有四個庫,我們這里上傳到maven庫
name = "mytool" //需更改,這個名字就是你在Bintray上創建Package的名字,這里會查詢,如果此包不存在就會創建一個。
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
(9)在項目中的local.properties文件中添加用戶信息
bintray.user=YOUR_BINTRAY_USERNAME //你的Bintray用戶名
bintray.apikey=YOUR_BINTRAY_API_KEY //你的Key值
(10)最后打開Terminal,輸入命令執行上傳,當BUILD SUCCESSFUL時代表上傳成功!
gradlew bintrayUpload
(11) 如果看到了這個就代表成功上傳,如果需要上傳到Jcenter點擊Add to Jcenter,輸入描述信息發送信息等待官方審核,審核通過即可直接根據地址調用。
如果沒有上傳Jcenter的話,要調用就需要先在項目根目錄build.gradle中,添加如下:
allprojects {
repositories {
jcenter()
maven {
url "http://dl.bintray.com/junwen/maven" //這個要添加,只要更改junwen成你的用戶名即可
}
}
}
之后在app/build.gradle中添加 compile 'com.junwen.mytool:mytool:1.0.0' 即可使用
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.junwen.mytool:mytool:1.0.0'
}
總結
在本地的build.gradle配置中,配置的Package名字如果不存在,他會自動創建,所以以后可以先配置項目,直接上傳,他會根據你本地上傳給予的項目名,自動創建Bintray對應的Package包。
歡迎關注我的微信公眾號,分享更多技術文章。