zoukankan      html  css  js  c++  java
  • 如何使Android Studio项目发布到Jcenter中

    Android仓库

    简单的普及下关于android的依赖仓库,有两种分别是JcenterMaven Central其实不管是Jcenter还是Maven Central都是Maven库。

    Jcenter

    Jcenter是由bintray.com维护,在Android Studio的项目根目录的build.gradle中我们会看到自动帮我们实现的Jcenter

    buildscript {
        repositories {
            jcenter()
        }
    }

    Maven Central

    当然也可以在build.gradle中定义Maven Central

    buildscript {
        repositories {
            mavenCentral()
        }
    }

    至于在Android Studio中为什么默认使用Jcenter原因还是有的,感兴趣的可以自己去查,我要说的一点就是,这里你可以认为JcenterMaven Central的超集,这样就能更好的理解为什么要使用Jcenter了。

    gradle获取library

    这里要了解一下我们看到的依赖所定义的方式,其实是有格式的并不是随便乱写的。其实你只要平常够仔细就能发现他们的格式是一样的。
    GroupIdArtifactIdVersionId组成。例如com.jakewharton:butterknife:6.1.0'它的GroupIdcom.jakewhartonArtifactIdbutterknifeVersionId6.1.0。现在看这些依赖是不是更清晰了呢。当我们添加了依赖之后gradle会先去Maven中查找是否有该library如果有就会使用上面定义的形式下载http://jcenter.bintray.com/GroupId/ArtifactId/VersionId

    http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0

    http://www.codesocang.com/anzhuoyuanma/
    通过该链接下载到本地再与我们的项目结合。

    下面正式进行实现依赖的实现

    注册

    首先要在https://bintray.com 中注册账号,注册都是很简单的就不所说了。
    然后回到主页在你的Owned Repositories中看下你是否已经添加了maven

    第一次注册的应该没有,所以我们要先New Repository创建maven

    创建之后会自动跳转到maven中,你会发现没有package,我们可以Add New Package这种相信都会,我这里要说的是另外一种,我们直接在Android Studio中进行配置然后上传到Bintray

    代码中配置

    分离成多个Module

    为了使别人能更好的使用,我们一般在实现自己的依赖的时候会把实现的该依赖的源码作为一个Module,再把实例代码作为Application Module。所以我们要事先处理好Module,下面是我弄好的示例

    添加bintray插件

    在分了Module之后,首先在项目的根目录build.gradle
    dependencies中添加bintray插件

    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3

    添加bintray认证

    找到local.properties文件在其中添加

    bintray.user=xxxx
    bintray.apikey=xxx

    bintray.user是注册的user,至于bintray.apikeyJFrog Bintray中的Your ProfileEdit页面的API Key中能找到。

    修改Module中的build.gradle

    在其中添加如下示例代码:

    apply plugin: 'com.android.library'
    
    ext {
        bintrayRepo = 'maven'
        bintrayName = 'mypicker'
    
        publishedGroupId = 'com.idisfkj.picker'
        libraryName = 'MyPicker'
        artifact = 'mypicker'
    
        libraryDescription = 'A pickerView on Android'
    
        siteUrl = 'https://github.com/idisfkj/idisfkj.picker'
        gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git'
    
        libraryVersion = '1.2.1'
    
        developerId = 'idisfkj'
        developerName = 'idisfkj'
        developerEmail = 'idisfkj@qq.com'
    
        licenseName = 'The Apache Software License, Version 2.0'
        licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
        allLicenses = ["Apache-2.0"]
    }

    同时在最后添加两个脚本

    apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
    apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

    这是我这个依赖的示例。其中bintrayRepo是默认的使用mavenmypicker是建立的package namesiteUrl是你的项目地址,我的项目在github上,所以是github项目的地址形式。gitUrlVCS。其他应该没什么问题,相应的改成自己的信息。

    这样就构建好了依赖com.idisfkj.picker:mypicker:1.2.1

    上传到bintray

    打开Android Studio的终端

    编译library文件

    在终端输入

    ./gradlew install

    出现BUILD SUCCESSFUL就没问题

    上传

    在终端输入

    ./gradlew bintrayUpload

    一样的出现BUILD SUCCESSFUL就没问题
    然后你进入JFrog Bintray进入maven你就会发现其中多了一个package,如果有的话那就表示完美成功。

    同步到Jcenter

    完成了上面的步骤并不代表别人可以直接使用

    dependencies {
        compile 'com.idisfkj.picker:mypicker:1.2.1'
    }

    还要添加

    repositories {
        maven {
            url 'https://dl.bintray.com/idisfkj/maven/'
        }
    }

    所以我们要同步到Jcenter中,怎么同步呢?别急,只要在你刚刚生成的package中点击Add to Jcenter即可。

    进去之后直接发送就可以,不需要填写什么。

    最后就是等待了。几个小时之后你会收到考核通过的消息,再返回package就会发现Linked to发生了变化。

    现在你也可以通过http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。

    同时别人也能使用你的依赖,通过如下简单的配置

    dependencies {
        compile 'com.idisfkj.picker:mypicker:1.2.1'
    }

    版本更新

    对于版本更新,只要更改上面配置的版本号libraryVersion = '1.2.1'改成你要更新的版本,其它不变。再重新上传到bintray

    总结

    我这里再来整理下上传的思路。

    • 既然要上传到Jcenter上,自然要去https://bintray.com 中注册账号

    • 根据自己的需求创建mavenRepository

    • 把项目分离成Module

    • 在项目根目录的build.gradle中添加bintray插件

    • local.properties中添加bintray认证

    • 修改Module中的build.gradle中的配置

    • Android Studio终端使用./gradlew xxx上传

    • 最后在JFrog Bintray中同步到Jcenter

    好了,就到这里了,希望有所帮助!

  • 相关阅读:
    hibernate学习四 hibernate关联关系映射
    三 vue学习三 从读懂一个Vue项目开始
    hibernate学习三 精解Hibernate之核心文件
    hibernate学习二 基本用法
    hibernate 学习 一 基本概念
    Hibernate一级缓存和二级缓存
    hibernate VS mybatis
    hibernate的优缺点和适用场合
    mybatis 优缺点和适用场合
    【Loadrunner接口测试】什么情况需要区分PC和手机端去做压测?
  • 原文地址:https://www.cnblogs.com/miaoqing/p/5584274.html
Copyright © 2011-2022 走看看