Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)

我们经常使用github上的开源项目,使用步骤也很简单

比如:

compile ‘acffo.xqx.xwaveviewlib:maven:1.0.0‘

这里就学习一下如何将自己的类库做出这种可以供他人使用的开源项目。

一、Android studio项目准备

  这时候我们想写了一个自定义控件,想要传到github上让别人使用。

  1、先在该项目下创建一个Module

  

  2、选择Android Library

  

  3、填写类库名称

  

  4、此时的目录结构

  

  注意,开源出去的是library类库,所以需要在类库中写自定义控件或者其他代码,而不是在app目录下

  5、创建一个自定义控件View

  

  

  6、在app目录下 写使用该类库的相关示例代码 ,让app依赖该类库

  

  

  二、Bintray准备

  1、首先创建一个Bintray账号,注册地址 https://bintray.com/signup/oss 注意这是个人账号注册,很多文章给的链接是公司账号注册。

     有个注意点:邮箱不能是163的 也许还有别的也不能使用,建议使用谷歌的gmail邮箱。

  

  2、创建找好成功之后,选择创建组织

  

  可以看到已经创建好的组织

  

  3、选择进入一个,比如我进入xqxlibrary组织 ,然后界面如下,再继续点击创建仓库

  

  

  4、创建仓库界面如下

  

  创建完成之后可以看到xqxlibrary组织下多了一个仓库

  

  5、最后我们要记录一下自己的Bintray用户名 和 API Key 值,Android studio配置的时候需要

   

    

    复制API Key

 三、Android Studio 项目 配置

  1、根目录下的build.gradle 配置

  在 dependencies{} 中添加

        classpath ‘com.novoda:bintray-release:0.3.4‘

  在allprojects中添加:

  tasks.withType(Javadoc) {
        options.addStringOption(‘Xdoclint:none‘, ‘-quiet‘)
        options.addStringOption(‘encoding‘, ‘UTF-8‘)
    }

最终如下:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath ‘com.android.tools.build:gradle:2.2.2‘        classpath ‘com.novoda:bintray-release:0.3.4‘    }}

allprojects {    repositories {        jcenter()    }    tasks.withType(Javadoc) {        options.addStringOption(‘Xdoclint:none‘, ‘-quiet‘)        options.addStringOption(‘encoding‘, ‘UTF-8‘)    }}

  2、module目录下的build.gradle 配置

  (1)、最顶端添加代码

apply plugin: ‘maven‘
apply plugin: ‘com.novoda.bintray-release‘

  (2)、Bintray配置资料区

//添加
publish {
    userOrg = ‘xqxlibrary‘        // 组织名
    groupId = ‘acffo.xqx.mycustomview‘  //类库的包名
    artifactId = ‘maven‘       // 工程名 ,自定义
    publishVersion = ‘1.0.0‘         //版本号
    desc = ‘波浪流动效果‘ //描述
    website = ‘https://github.com/BestCoderXQX/XWaveView‘ //github地址  你可以把你的项目push到你的github上 , 项目的地址即这个地址
}

  全部代码:

apply plugin: ‘com.android.library‘
apply plugin:  ‘maven‘
apply plugin: ‘com.novoda.bintray-release‘

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        minSdkVersion 15
        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.3.1‘
    testCompile ‘junit:junit:4.12‘
}
//添加
publish {
    userOrg = ‘xqxlibrary‘
    groupId = ‘acffo.xqx.xwaveviewlib‘
    artifactId = ‘maven‘
    publishVersion = ‘1.0.0‘
    desc = ‘波浪流动效果‘
    website = ‘https://github.com/BestCoderXQX/XWaveView‘
}

  四、执行Gradlew命令语句

gradlew clean build bintrayUpload -PbintrayUser=a463674420 -PbintrayKey=6f5e4e11d2d253a2d4************** -PdryRun=false

  解释如下:

gradlew clean build bintrayUpload
-PbintrayUser=a463674420 (这里是网站头像旁边对应的帐号,有可能跟网址上面的不一样,一定要区分好)
-PbintrayKey=6f5e4e11d2d253a2d4************** (这个是上面让大家复制保存下来的API key)
-PdryRun=false(如果是false那么就会真实提交,如果是true不会去进行真实提交,但是会编译,可以去查看是否编译通过在提交)

  执行到SUCCESSFUL 即表示成功了。

    

  五、提交审核

  找到建的组织下的仓库 , 会发现 多了一个package

  

   点击进入 ,点击右侧的"Add to JCenter"即可提交审核 ,用的时候点击左下侧的‘Gradle‘即可

   

  

时间: 2024-08-04 23:00:27

Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)的相关文章

Android开发实战(十八):Android Studio 优秀插件:GsonFormat

原文:Android开发实战(十八):Android Studio 优秀插件:GsonFormat Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat ------------------------------------------------------------------------------------------------------- 这几天没有活,于是乎整理了一些代码,顺便把一些一直在使用的东西也整理下,然后学

Android项目实战(十四):TextView显示html样式的文字

原文:Android项目实战(十四):TextView显示html样式的文字 项目需求: TextView显示一段文字,格式为:白雪公主(姓名,字数不确定)向您发来了2(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色. 一开始我想的是用(转) SpannableString与SpannableStringBuilder来实现,因为它可以实现一段文字显示不同的颜色 但是貌似它只能固定哪些位置的文字显示什么样式,于是乎放弃. 然后就想到了用 Html

Android项目实战(十二):解决OOM的一种偷懒又有效的办法

原文:Android项目实战(十二):解决OOM的一种偷懒又有效的办法 在程序的manifest文件的application节点加入android:largeHeap=“true” 即可. 对,只需要一句话! 那么这行代码的意思是什么呢? 简单的说就是使该APP获取最大可分配的内存,以便解决OOM问题. 但是.OOM问题出现的原因总得来说有两点: 1.某个手机的内存真的很少 2.代码问题,比如没有处理好Bitmap图片的大小 可以说,出现OOM的情况基本都是第二种情况,那么就需要修改代码,看看哪

Android项目实战(十):自定义倒计时的TextView

原文:Android项目实战(十):自定义倒计时的TextView 项目总结 -------------------------------------------------------------------------------------------- 有这么一个需求: 我有一个ListView,每一个列表项 布局如上图,顶部一个大图片展示,中部一个音频播放,底部一个描述文字. 在这个界面,一次只能点击一个列表项的播放按钮,那么我直接在ListView所属的activity创建了唯一的

Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件

原文:Android项目实战(十六):QQ空间实现(一)-- 展示说说中的评论内容并有相应点击事件 大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: 1.QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于用户的个人主页(即点击文字“白雪公主”/“小矮人”,就可以进入到这俩用户相应个人主页) 2.点击 回复的文字,就可以对回复人进行回复(即点击评论中回复的内容“你们好啊~”,便对弹出一个编辑框对回复人

应用程序框架实战三十八:项目示例VS解决方案的创建(一)

进行项目开发的第一步,是创建出适合自己团队习惯的VS解决方案,虽然我已经提供了项目示例,但毕竟是我创建的,你直接使用可能并不合适,另外你如果尝试模仿重新创建该示例,中间可能碰到各种障碍,特别是项目间的依赖关系. 本文的目的是帮助.Net架构初学者能顺利搭建起适合自己的VS解决方案,我会在本文演示曾经用过的几种不同风格的目录结构,你可以根据自己的习惯选择一种并自行修改. 本系列假定你已经熟悉如何创建.NET类库等基础知识,并具有.Net开发经验,我不会详细到每一个细节.如果你是.Net初学者,尚未

【慕课网实战】Spark Streaming实时流处理项目实战笔记十八之铭文升级版

铭文一级: 功能二:功能一+从搜索引擎引流过来的 HBase表设计create 'imooc_course_search_clickcount','info'rowkey设计:也是根据我们的业务需求来的 20171111 +search+ 1 项目打包:mvn clean package -DskipTests 报错:[ERROR] /Users/rocky/source/work/sparktrain/src/main/scala/com/imooc/spark/project/dao/Cou

Android Studio第三十八期 - HIOS跳转协议解决URI跳转原生页面并传递参数

代码已经整理好,效果如下图: 图1: 图2: 图3: 地址:https://github.com/geeklx/MyApplication/tree/master/p022_hois HiosRegister: package com.example.p022_hois.hioscommon; import com.example.p022_hois.hoisjump.HiosAlias; public class HiosRegister {     private static final 

Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

原文:Android项目实战(三十四):蓝牙4.0 BLE 多设备连接 最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据. 查询了很多资料终于实现,现进行总结. -------------------------------------------------------------------------------------------------------------------------------------------------------------