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按钮登陆或者注册。


AndroidStudio快速发布开源项目到Jcenter/Bintray_第1张图片

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

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第2张图片

第三步,注册帐号并激活

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第3张图片

第四步,拿到自己的ApiKey

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

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

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第4张图片

4.2输入登录密码复制ApiKey

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第5张图片

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第6张图片

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


AndroidStudio快速发布开源项目到Jcenter/Bintray_第7张图片


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


AndroidStudio快速发布开源项目到Jcenter/Bintray_第8张图片


AndroidStudio快速发布开源项目到Jcenter/Bintray_第9张图片

这里需要注意的是: 这个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'[email protected]'// 开发者邮箱。 

 }

 }

// 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一样如:


AndroidStudio快速发布开源项目到Jcenter/Bintray_第10张图片

找到自己的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 这样就可以咯


AndroidStudio快速发布开源项目到Jcenter/Bintray_第11张图片


配置完后你重启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:

AndroidStudio快速发布开源项目到Jcenter/Bintray_第12张图片

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

AndroidStudio快速发布开源项目到Jcenter/Bintray_第13张图片

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

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

你可能感兴趣的:(AndroidStudio快速发布开源项目到Jcenter/Bintray)