美文网首页
AndroidStudio快速发布开源项目到Jcenter/Bi

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

作者: Kael_祈求者 | 来源:发表于2016-08-24 23:10 被阅读0次

    最近本人自己写了个简单的开源库,放在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管理员审核:

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

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

    相关文章

      网友评论

          本文标题:AndroidStudio快速发布开源项目到Jcenter/Bi

          本文链接:https://www.haomeiwen.com/subject/vhzhsttx.html