使用Android Studio发布私有库到仓库中心

介绍

当在我们这行积累到一定程度,都会有自己的一些代码库,这些代码被多个项目使用。之前的做法是每次到新的项目中,就会把之前的代码拷贝过来,升级一下,或许会把一些纯java代码打包成jar包文件,这样项目中只要引用这个jar包就可以了,但是在Android中,我们可能还会用到一些资源文件,这样再想打包成jar包就比较麻烦了。再再升级下,我们可以使用Android Studio生成aar文件,这样就避免了资源文件无法打包的困扰。但是这样每次到新项目,我们还是要将aar文件拷贝过来,这样的维护还是需要些成本。本文将阐述如何将私有代码库发布到maven仓库中心,只要一句简单的配置代码,即可引用自己的代码库,这样是不是更好维护,更简单,逼格更高呢~

创建并配置library项目

作为一个工具类库,首先,我们需要创建一个library项目
library项目
然后在project的build.gradle配置以下两句代码

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


接着在library module的build.gradle增加一些配置:

1、添加插件
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
2、定义版本
version = "0.0.1"
3、设置项目代码地址

这里我是使用github作为代码开源地址

def siteUrl = 'https://github.com/a631855639/BintrayDemo'    // project homepage
def gitUrl = 'https://github.com/a631855639/BintrayDemo.git' // project git
4、定义group

这个group定义的名称将是你之后要引用时会用到的,且要唯一,一般是用包名

group = "com.bintray.library.demo"

如何确定唯一性呢,可以打开这个地址https://bintray.com/bintray/jcenter,然后搜索一下自己的包名,看是否被人使用过了没。

5、定义pom并打包aar
install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                name 'Helen Code For Android'//一些描述
                url siteUrl
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {//开发者信息
                        id ''
                        name ''
                        email ''
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}
6、打包javadoc jar和source jar
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

javadoc {
    options{
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
    }
}

artifacts {
    archives javadocJar
    archives sourcesJar
}
7、上传到maven仓库,从local.properties读取user和apikey
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = "BintrayLibraryDemo"                // project name in maven
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

publish = true,代表当改task执行时,就将其发布上去,如果为false就不发布。
这里你需要在项目的local.properties文件里配置bintray.user和bintray.apikey,分别为https://bintray.com/ 网站注册的用户名和密钥。
注意:不要将local.properties文件提交到代码开源库上,防止重要信息泄露,记得使用忽略文件将其忽略提交

项目整体配置

以上步骤算是配置好了,剩下就是到https://bintray.com/ 注册用户,获取bintray.user和bintray.apikey了
来个配置代码全身照吧!


获取bintray.user和bintray.apikey

要获取这两个值,必须要先到https://bintray.com/ 注册,然后点击个人头像—>编辑


如果发布失败,可能是因为你的user填错了。之前,我在注册的时候,使用的用户名是Helen,但是发现发布失败,当我改为小写helen时,成功了!当你不知道你要填大写小写时,你可以看进入你的个人主页时,地址写着是什么就是什么了,比如我的个人主页是https://bintray.com/helen

发布

配置完以上,最后,打开命令行执行

gradlew bintrayUnload

或者如下图

双击运行bintrayUnload即可。
然后你会在bintray的个人主页下方

说明已经上传成功了,但是还没完,点击上面的项目链接进入项目主页,然后将其“Add to JCenter”提交,等待审核。


等待审核通过之后(这个差不多等半个小时吧),然后就可以使用了。用法就是使用gradle compile group名+module名+版本号

compile 'com.bintray.library.demo:app:0.01'

升级

我们的类库也会不断优化,添加功能,这时候仓库中心的代码也需要升级,这个只要将第二步中的版本号version提高一个版本即可,然后再次执行bintrayUnload。如果没有将版本号升级,就再次发布,会报错

Could not upload to 'https://api.bintray.com/content/helen/maven/BintrayLibraryDemo/0.0.1/com/bintray/library/demo/app/0.0.1/app-0.0.1-javadoc.jar': HTTP/1.1 409 Conflict

提交升级之后,需要等待一段时间。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值