近期项目上线,闲来无事便研究研究了一些自定义View,写了一些小例子,后面准备开源到GitHub供大家参考指导,结果费劲九牛二虎之力上传到Github之后,才发现项目无法引用,这时才发现自己是多么的菜鸟,曾经天真的认为上传到Github上之后便可以直接在项目中引用了。后面查资料才发现,还需要上传到Maven Center中去,好了,废话不多说,今天重点就来看看如何发布一个开源项目到JCenter,让其他开发者在Android Studio Gradle 中通过compile快速引用。(在这里非常感谢鸿洋大神文章的指导:http://blog.youkuaiyun.com/lmj623565791/article/details/51148825以及另一位作者:http://www.jianshu.com/p/31410d71eaba)
一、首先使用Android Studio创建一个待发布的项目(此处略过,大家都会创建项目)
二、注册Bintray账号
因为jcenter是属于Bintray旗下的仓库,所以实际上我们的上传流程其实就是,从你的Androd Studio,到你的bintray 仓库,最后同步到jcenter仓库
注册登录之后打开下面这个页面:
登陆后,你可以点击Your Profile
->Edit
然后就能看到上图的界面。
点击API Key,就可以看到你一段key字符串,把这个copy下放一边,一会上传要用。
三、修改Android Studio项目中两个build.gradle文件
1、修改项目的build.gradle文件,在你的项目的build.gradle添加bintray-release
的classpath,注意是项目的build.gradle,不是module的,针对文章开始的图即:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.novoda:bintray-release:0.3.4'
}
}
2、修改待上传moudle中的build.gradle文件:
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//增加
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {//增加
abortOnError false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
}
publish {//增加
userOrg = 'perfactliu'//bintray.com用户名
groupId = 'com.perfactliu'//jcenter上的路径
artifactId = 'testgithub'//项目名称
publishVersion = '1.0.0'//版本号
desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要
website = 'https://github.com/perfactliu/testgithub'//网站,不重要;尽量模拟github上的地址,例如我这样的;当然你有地址最好了
}
完成上面的配置后,就准备上传了
四、在Andriod Studio 中上传
上传很简单,执行下面的代码即可
gradlew clean build bintrayUpload
-PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
user就是用户名,key就是我们刚才的让你保存的key,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
ok,下面整理好上面的这段代码,运行即可。关于运行,你可以选择在Android Studio的Terminal面板进行,如下图。
点击底部的Terminal即可,注意下你当前的路径是当前项目下,然后enter运行。
然后就是等待,当运行完成,看到BUILD SUCCESSFUL
就没问题了,如果有什么问题呢,根据log排查下。
到此就上传完成了~~~
五、将上传至Bintray的项目同步到Jcenter你可以访问https://bintray.com/你的用户名/maven
,即可看到:
看到我们上传的项目了,你可以点击进去看该库的一些信息,但是注意此时还不能够直接被引用。
点击进去该库,按照下图,点击Add To jcenter
然后随便写一下对你该库的描述,然后点击发送就可以了。
Add to Jcenter
那个按钮就小时了