AndroidStudio快速发布开源项目到Jcenter/Bintray

最近本人自己写了个简单的开源库,放在github上。就想想我们工程中平时用一些第三方的网络框架和图片框架,都支持Gradle一句话依赖使用,如果是eclipse,要导入jar,所以就想自己也上传到Jcenter/Bintray.

1.必要的准备工作

AndroidStudio、Gradle和自己的开源项目这个必须有。

Jcenter是Bintray下的一个仓库,所以Bintray帐号必须的,没有的同学看下文如何申请。

网络必须是畅通的,要能访问https://bintray.com

如何申请Bintray帐号

没有Bintray帐号的同学到Bintray官网申请,进入页面后点击右上角的Sign In登录,如果有帐号的人可以直接登录了,没有帐号的同学点击下面的Sign Up注册帐号,操作流程如图所示:

第一步,登录或注册入口

点击Sign In按钮登陆或者注册。


第二步,登录或者到注册页面

有帐号直接登录,或者用第三方帐号(Github、Twwiter,Google+)登录,如果没有帐号就点击Sign Up注册:

第三步,注册帐号并激活

根据提示输入相关信息注册,邮件地址灰常重要,一定填自己最常用的,找回密码等用得到,注册好之后会收到一封激活的邮件,根据提示激活就好了。

第四步,拿到自己的ApiKey

apikey是我们发布项目到Jcetner时必须要用的,拿到ApiKey后保存起来等下要用,步骤如下:

4.1打开个人配置页面,并点击[Edit]

拿到apikey必须要先登录,登录成功后,右上角原来显示Sign In的地方显示的自己的用户名,鼠标指向用户名的时候有一个下拉菜单,我们需要点击Your Profile,出现的页面左偏上角你的头像和用户名下面有一个[Edit],图示:

4.2输入登录密码复制ApiKey

点击Edit后出来的新页面,选择左侧的[API Key],会出来如下页面,输入你登录密码点击下方的Submit后会显示一个ApiKey,图示:

输入密码后点击Submit后显示如下,鼠标选中文字后复制并保存(注意不要点击Revoke it,这是撤销这个ApiKey的意思):

第五步,就是创建一个Maven创库



点击add创建跳入如下页面:



这里需要注意的是: 这个Name 和 选择Maven重要,Name在Studio里面上传时Jcenter时需要这个名字的

创建成功后会跳到下个页面,然后点击 Add New Package 开始 创建自己项目库,这边有3个字段是必须 要填

(1) Name (2)Licenses这里一般选择Apache-2.0与你Studio里面配置一致 (3)Version control 版本号 如:1.0.1


以上的步骤做完后,下面就是在我们的工程里面进行配置


配置项目gradle和local.properties

(一)配置项目的gradle文件

我们项目一般会有多个gradle配置文件,第一步要配置的是项目的gradle,而不是module/library的gradle,也就是上图[项目的gradle]标注的文件,你的项目中应该只有dependencies节点下的代码不一样:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.1.0'

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' //添加这行

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'  //添加这行

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

}

}

task clean(type: Delete) {

delete rootProject.buildDir

}

(二)配置要上传的library/module的gradle文件

applyplugin:'com.android.library'

applyplugin:'com.github.dcendents.android-maven'   //添加这行

applyplugin:'com.jfrog.bintray'                                    //添加这行

android {

compileSdkVersion23

buildToolsVersion"23.0.1"

defaultConfig {

minSdkVersion15

targetSdkVersion23

versionCode1

versionName"1.0"

}

 buildTypes { 

 release { 

 minifyEnabledfalse 

 proguardFilesgetDefaultProguardFile('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.0.0'

}

/**以下都是需要配置的**/

version="1.0.1"

// 定义两个链接,下面会用到。

defsiteUrl ='https://github.com/15189611/PullRefreshRecycleView'// 项目主页。

defgitUrl='https://github.com/15189611/PullRefreshRecycleView.git'// Git仓库的url。

// 唯一包名,比如compile 'com.charles:pullrefreshlibrary:1.0.1''中的

         com.charles就是这里配置的。 

          pullrefreshlibrary : 这个就是你module的项目名称,一般你创建一个项目都是app,你可以修改此名字

          1.0.1 

group="com.charles"      

install {

repositories.mavenInstaller{

// 生成pom.xml和参数

pom{

project{

packaging'aar'

// 项目描述,复制我的话,这里需要修改。

name'PullRefreshRecycleView'// 可选,项目名称。

description'The Android PullRefreshRecycleView.'// 可选,项目描述。

urlsiteUrl// 项目主页,这里是引用上面定义好。

// 软件开源协议,现在一般都是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'151896911'// 开发者的id。

 name'mcharles'// 开发者名字。

 email'18670342259@163.com'// 开发者邮箱。 

 }

 }

// SCM,复制我的,这里不需要修改。

 scm{

connectiongitUrl// Git仓库地址。

developerConnectiongitUrl// Git仓库地址。

urlsiteUrl// 项目主页。

}

}

}

}

// 生成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/")

failOnErrorfalse// 忽略注释语法错误,如果用jdk1.8你的注释写的不规范就编译不过。

}

// 生成javaDoc的jar,不需要修改。

task javadocJar(type: Jar,dependsOn:javadoc) {

classifier='javadoc'

fromjavadoc.destinationDir

}

artifacts {

archives javadocJar

archives sourcesJar

}


// 这里是读取Bintray相关的信息,我们上传项目到github上的时候会把gradle文件传上去,所以不要把帐号密码的信息直接写在这里,写在local.properties中,这里动态读取。

Properties properties =newProperties()

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"// 上传到maven库。  注意:这里填写你刚刚创建的库的名称 而不是maven

name ="PullRefreshRecycleView"// 发布到Bintray上的项目名字,这里的名字是你创建项目的名称,比如:PullRefreshRecycleView

websiteUrl = siteUrl

vcsUrl =gitUrl

licenses = ["Apache-2.0"]

publish =true// 是否是公开项目。

}

}


(三)在local.properties中为module/libraray配置用户隐私信息

我们会在local.properties中配置很多变量,别的地方动态引用或者读取,这样就可以做到修改一个地方,其它地方都可以不用改了:

sdk.dir=你的sdk路径

 # 其实你只需要添加下面两行,第一个填你的用户名,比如我的是mcharles

1  bintray.user=mcharles

2 bintray.apikey=fa*******************aab

注意下我这里为了不泄漏我的ApiKey,就用*代替了,你的要写你的完整的ApiKey喔。


(四) 设置Studio的编码格式为UTF-8  这边如果你的代码有中文注释的话,就会影响到报错,设置编码这边就不贴图了·相信大家都会.(特别注意)


上传项目到Jcenter


准备工作都做完啦,最后一步就是上传操作了,点击AndroidStudio底部的Terminal,观察下Terminal显示的路径是否是你当前项目的root。

1.这里如果你系统配置了gradle的用户环境,输入gradle install,如果没有配置gradle用户环境,输入gradlew install ,需要下载。

  这边我教大家一个配置gradle环境,一般我们用Studio开发已经下载过gradle环境这边我们只需要找到相对于的位置

  像配置jdk的path一样如:


找到自己的studio安装位置: 比如我的是:E:\android-studio\android-studio\gradle\gradle-2.10\bin

然后复制目录配置到Path里面去就ok

正确的环境路径应该是C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3\bin 这样就可以咯



配置完后你重启Studio,可以输入直接在控制台输入: gradle install

如果没有问题过个几分钟后就会显示BUILD SUCCESSFUL。

2.如果你看到了生成javadoc时编译不过,那么要看下在gradle中task javadoc下有没有failOnError false这句话,在刚才编写gradle时提示过了。如果加了这句而你的javadoc写的不规范会有警告,你不用鸟它。

3.最后一步,运行gradle install后看到BUILD SUCCESSFUL后,再输入上传命令gradle bintrayUpload,等一分钟左右就执行完了,会提示SUCCESSFUL。

4.浏览器https://bintray.com/后会看到你的项目。

上传完成咯,你会发现在项目gradle中依赖如下代码后依赖失败:

这是你还没有将你的项目提交给Bintray的管理员审核,所以不能用。


最后步骤:将上传后的项目提交

原因是我们项目上传完成后还需要Bintray的管理员审核,所以在刚才项目页面点击进去查看详情,点击Add to Jcetner:

之后的页面中填写项目信息,交给Bintray管理员审核:

发送后就所有的步骤完成了,现在就是坐等你的注册邮箱收信息吧,一般时间蛮快的,半天左右吧。

  审核通过后你就可以在项目中依赖了·好运码农们~~~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容