android mvn命令行,android上传库到maven中央

发布到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上面注册一个账号,然后登录进去。

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

3、创建仓库

0818b9ca8b590ca3270a3433284dd417.png

4、Add New Package

0818b9ca8b590ca3270a3433284dd417.png

5、选择要上传的AndroidStudio项目

0818b9ca8b590ca3270a3433284dd417.png

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

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

0818b9ca8b590ca3270a3433284dd417.png

如下:

username就是你bintray账号的用户名

apikey在这里查找:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

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"]

}

0818b9ca8b590ca3270a3433284dd417.png

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

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里面添加最后三行代码:

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

0818b9ca8b590ca3270a3433284dd417.png

gradlew install

0818b9ca8b590ca3270a3433284dd417.png

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

gradlew bintrayUpload

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

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

这种的注释都会导致生成失败,而且由于使用的是Windows系统,默认编码是GBK,所以在上传编译时报了编码的错误问题。

解决方法:

在库项目的build.gradle里添加:

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

点击右下角的Add to JCenter按钮

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

跳到一个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' 是会报错的:

0818b9ca8b590ca3270a3433284dd417.png

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

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

0818b9ca8b590ca3270a3433284dd417.png

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

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

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

3.注意

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

如果出现:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值