Android Studio发布Android库到JCenter
前言
虽然已经有很多大神发过这种文章,但是自己做的时候还是有一些疑问,所以发这篇文章记录一下,希望能给各位一些帮助。
准备工作
- 一个GitHub账号,当然这不是必要的
- 一个自己的Android Library
- 科学上网, Bintray似乎国内访问不了
发布步骤
JCenter仓库创建
JCenter 是由Bintray进行管理的,所以我们所创建的仓库也是由它进行管理。下面是详细步骤
1. 创建Bintray账号,这一步可以使用GitHub账号进行代替
注册.png2. 创建用户组织(user orgnization)
创建用户组织.png如图所示,jonnypeng就是在下创建的组织ID,这一步是必须的,创建一下,反正不会怀孕。。
选择创建方式.png 创建过程.png在选择完创建方式之后就可以进行创建组织了,不过我就填了三个,图中Unique Identifier(唯一标志符)和组织名称是必填的,在创建用户组织里面显示的是jonnypeng是Unique Identifier而JSoftware则是组织名称。。像我这种有强迫症的人来说,最好取个带点意义的名字吧,免得到时候又要来删就不好了。。囧
3. 创建仓库
点击左下角Add New Repository的按钮进行创建仓库
添加仓库3.1.png 添加仓库3.2.png在这里Type一般我们都是选择Maven仓库,Android Studio就支持这个,协议一般我都选择MIT,因为即使你选其他的也没卵用,因为这里是中国。。如果搞不清楚协议的区别的可以去看如何选择开源许可证?这篇文章,还有仓库是可以添加很多项目的,所以不要把项目名和仓库名混在一起了。创建完成之后Add New Repository就会有你的仓库
4. 创建Package
点击仓库进行创建Package
创建Package4.1.png 创建Package4.2.png 创建Package4.3.png这里一张截图放不下,分两张,具体的注意点已经给出,上面就是创建JCenter的仓库的步骤了,接下来还要进行配置Android Studio。好累!!!
配置Android Studio Gradle
1. 配置Project 下Gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
//下面这两行是需要添加的
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
2. 配置API Key
忘记了,还要获取API Key。。囧
配置API Key 2.1.png 配置API Key 2.2.png通过上面两步就可以获取到API Key,下面进行配置
bintray.user=johnypeng //你的用户名,在右上角
bintray.apikey=************************************//API Key
3. 配置Module Gradle
下面的很多我也不知道是什意思,所以我就全复制过来了,大家按照自己项目的详细情况进行配置。。
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version="0.1"
//这个地方比对一下自己的项目
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 23
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
//这个地方不需要改
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
def siteUrl = 'https://github.com/JohnyPeng/ActionSheetDialog' // 项目的主页
def gitUrl = 'https://github.com/JohnyPeng/ActionSheetDialog.git' // Git仓库的url
group = "com.android.actionsheetdialog" // Maven Group ID for the artifact,一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'A bottom dialog like IOS' //项目描述
url siteUrl
// Set your license
licenses {
license {
//
name 'Massachusetts Institute of Technology'
url 'http://www.opensource.org/licenses/mit-license.php'
}
}
developers {
developer {
id 'JonnyPeng' //填写的一些基本信息
name 'Jonny'
email 'godteen.peng@gmail.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
//下面这些我也不知道是什么意思,参考大神的于是就复制过来了
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
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 {
userOrg = "jonnypeng"//JCenter上创建的的Organization
repo = "custom"//你要上传的库的名字
name = "ActionSheetDialog" //发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["MIT"]
publish = true
}
}
上传到JCenter中
在Android Studio 的Teminal中执行下面这两条命令,进行上传
./gradlew install //补充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload
点击项目名然后点击发布JCenter中即可,等待审核通过,好像审核通过一次之后就不用再进行审核了
上传到JCenter 1.1.png通过之后就会出现
上传到JCenter 1.2.png使用
//注意上米面那张截图中的红框
compile 'com.android.actionsheetdialog:actionsheet:0.1'
更新
如果有需要更新库的可以直接修改Module的Version然后进行上传。。
Paste_Image.png
然后执行
./gradlew install//补充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload
Paste_Image.png
可以看到版本号的更新,使用的时候当然两个都行
总结
以上就是Android库上传到JCenter的所有步骤,祝大家使用愉快!!!Chrome一直出现问题,输入中文就报错,烦死我了。。。