android上传库到maven中央

主要参考自:http://www.2cto.com/kf/201608/532583.html,感谢博主的奉献。

发布到maven中央仓库的话,有两种方式,一种是使用sonatype(https://issues.sonatype.org/),一种是使用bintray(com.bintray.com),都要注册后再进行操作。

两种方式都看了下,通过比较发现,使用sonatype过于复杂了,需要配置的文件有好几个,所以选择使用bintray来上传到中央仓库。


JCenter仓库是由bintray提供并维护,这个仓库是类似Maven中央仓库。只要你能连上Internet,你就可以通过Gradle或者Maven去下载仓库中的依赖包到你自己的项目中。

当然,我们也可以通过Android Studio把aar包发布到JCenter当中,这样就可以让更多的开发者使用我们提供的aar包。

把项目发布到JCenter中需要3步: 
1. 注册bintray账户 
2. 编写Gradle脚本,把项目发布到你bintray账户下的Maven仓库 
3. 同步到JCenter仓库

参考:http://www.2cto.com/kf/201608/532583.html中的操作方法,下面会对该文章中未写明或者有问题的地方进行补充。


1、在bintray.com上面注册一个账号,然后登录进去。

bintray登录

2、注册登录完成之后,创建仓库

创建仓库

3、创建仓库

创建仓库

4、Add New Package

创建Package

5、选择要上传的AndroidStudio项目

AndroidStudio项目

6、设置bintray的username和API Key来进行bintray的加密认证

将这些信息写在local.properties文件里。写在local.properties的原因在于,bintray的username和APIKey是敏感的私人信息,应该保管好而不是把它上传到github上,正好把local.properties文件写在.gitignore里面过滤掉,不会影响上传的github项目。

.gitignore

如下:

bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY

username就是你bintray账号的用户名

apikey在这里查找:

Edit Profile

Edit

API KEY

7、配置库module的build.gradle文件

ext {
    bintrayRepo = 'maven'
    bintrayName = 'circleloadinglibrary'
 
    publishedGroupId = 'com.mrzk.loadingview'
    libraryName = 'circleloadinglibrary'
    artifact = 'circleloadinglibrary'
 
    libraryDescription = 'a circle loading for android'
 
    siteUrl = 'https://github.com/zhangke3016/CircleLoading'
    gitUrl = 'https://github.com/zhangke3016/CircleLoading.git'
 
    libraryVersion = '1.1.0'
 
    developerId = 'mrzk'
    developerName = 'zhangke'
    developerEmail = '609975727@qq.com'
 
    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}
?

build.gradle

我们引用该类库的代码就是:

compile'com.mrzk.loadingview:circleloadinglibrary:1.1.0'

build.gradle文件的最末行添加下面两行代码:
	apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
	apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

9、整个project的build.gradle里面添加最后三行代码:
dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
 
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }

10、在AndroidStudio提供的Terminal窗口执行如下命令

Terminal窗口

gradlew install

BUILD SUCCESSFUL

接下来需要把build成功的文件upload到bintray上:

gradlew bintrayUpload

一切顺利之后也会出现:BUILD SUCCESSFUL

注意,这里有坑。我在build过程中,出现javadoc生成失败的问题,在生成javadoc时有检查文档的正确性,但是这里的检查有点过于严格了,像

这种的注释都会导致生成失败,而且由于使用的是Windows系统,默认编码是GBK,所以在上传编译时报了编码的错误问题。
解决方法:
在库项目的build.gradle里添加:

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

11、同步library文件到创建的bintray仓库

点击右下角的Add to JCenter按钮

点击右下角的Add to JCenter按钮

Send

跳到一个Request to include the package ‘test’ in ‘jcenter’的页面,什么都不用做,直接点击Send按钮就可以了。

大概1个小时左右,jcenter审核通过就会在bintray上收到同意消息提醒。 恭喜你,你的类库上传到jcenter成功了!

至此大家用我写的类库circleloading,仅仅只需要添加一行代码:

compile'com.mrzk.loadingview:circleloadinglibrary:1.1.0'



===============================================================================================



1.错误:

使用中在项目中的build.gradle中添加这几行代码时,

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
是会报错的:


那么说明你的classpath'com.github.dcendents:android-maven-gradle-plugin:1.3'版本错了,最新的android studio版本支持1.4.1了!


2.错误:在module中的build.gradle中引入的“apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'有问题

我看下了这个地址的文件内容,里面有这么一块代码:

这段代码表示,我们还需要进行gpg签名,但是操作方法中并没有提到这个,而在local.properties文件中也没有说到有bintray.gpg.password这个参数。

其实我还是去看来下GPG签名的,但是,哎怎么感觉这么复杂呢!又是要下工具的,又还要另外爬网页生成密钥公钥的,算了,直接把文件内容拷贝到项目中。

在module中新建一个文件uploadv1.gradle,然后在module的build.gradle中进行引入。内容就是

https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle中去掉version{}这块的内容即可。其他的都按自己的参数配置来就好。


3.注意

在配置bintray的帐号和key时,记得不要在用户名和密钥上加''号,我手贱的加上了,又浪费了我一段时间。

如果出现:

Could not create package ‘路径’: HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

的情况,就是你的用户名或者密钥错了!



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值