将项目通过Android Studio发布到Jcenter仓库

将项目通过Android Studio发布到Jcenter仓库,第1张

概述什么是Jcenter仓库?个人认为Jcenter类似于git/svn,是一个项目管理工具,我们可以用它存储一些公共的组件,类库,插件等实现共享功能,同时我们可以对其版本进行控制。那我们在项目的开发过程,当需要某个组件或类库,直接依赖即可,无需复制代码,或依赖一个module了,基本是一句代码可以搞 什么是Jcenter仓库?个人认为Jcenter类似于git/svn,是一个项目管理工具,我们可以用它存储一些公共的组件,类库,插件等实现共享功能,同时我们可以对其版本进行控制。那我们在项目的开发过程,当需要某个组件或类库,直接依赖即可,无需复制代码,或依赖一个module了,基本是一句代码可以搞定。如何将我们的项目发布到JCenter进行共享了?使用Bintray将项目发布到JCenter如何配置?

将项目上传到Jcenter,我们需要配置一些插件,常用的有两种

gradle-bintray-plugin(配置麻烦)

bintray-release(推荐 配置简单,但是现在支持5.0以下的gradle,好像不太支持gradle5.0以上,会出现错误 )

如何使用bintray-release来将项目发布到Jcenter?

1.注册开发者账号,在这里要注意账号体系分为企业账号和普通开发者账号的,企业账号有一个月的试用期限,在刚注册的一个月内,是不能将项目发布到Jcenter的(不提供add to Jcenter按钮),所以我们在注册的时候需要注意了。

官网链接: https://bintray.com/

2.到github获取bintray-release的版本

github地址:https://github.com/novoda/bintray-release

3.在AndroID Studio进行配置

在项目的build.gradle进行配置

dependencIEs {     classpath 'com.novoda:bintray-release:0.9.1'}

在开发过程中,我们会写一些注释,而在发布编译时需要生成对应JavaDoc文档,这时可能会有编码问题,所以我们需要设置编码问题,不然会有编码警告

    buildscript {      dependencIEs {        classpath 'com.novoda:bintray-release:0.9.1'       }       //注释中有汉字,需要这里处理       tasks.withType(Javadoc) {           options.enCoding = "UTF-8"       }         }

在我们要发布的module的build.gradle文件最后中进行如下配置

   	apply plugin: 'com.novoda.bintray-release'   	   	tasks.withType(Javadoc) {   	    options.enCoding = "UTF-8"   	}   	publish {   	    userOrg = 'askedevelop' //bintray账户下某个组织ID   	    repo@R_301_6889@ = 'keeplive' //远程仓库名 可以自定义 如不设置 默认名为maven   	    groupID = 'com.project.keeplivelibrary' //maven仓库下库的包名,一般为模块包名   	    artifactID = 'keeplivelib' //项目名称   	    publishVersion = '1.0.0' //版本号   	    desc = 'keep live for androID' //项目介绍,可以不写   	    website = '' //项目主页,可以不写   	    licences = ['Apache-2.0']   	}

在AndroID Studio的Terminal面板中执行下面命令,其中BINTRAY_USER@R_301_6889@替换为你的binatray用户名,BINTRAY_KEY替换为上面获取的API Key,-PdryRun=false会上传到仓库中,如果为true,只会执行gradle任务,但不会上传。替换完成后回车执行

    gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USER@R_301_6889@ -PbintrayKey=BINTRAY_KEY -PdryRun=false

成功之后最终结果

这时候其实我们并没有将项目完全发布到Jcenter,需要进过审核才可以,但是我们已经可以使Maven实现远程依赖了。

  //1.在整个项目的build.gradle配置Maven    allprojects {       repositorIEs {           Google()           jcenter()           maven { url 'https://www.jitpack.io' }          //添加我们的maven 地址           maven { url 'https://dl.bintray.com/askedevelop/keeplive' }       }   }   //2.在需要添加依赖库的module中添加依赖   implementation 'com.project.keeplivelibrary:keeplivelib:1.0.0'

当我们的依赖库被Jcenter审核通过后,我们可以去掉 maven { url ‘https://dl.bintray.com/askedevelop/keeplive’ },因为AndroID Studio默认以Jcenter作为默认的中央仓库,所以我们需要点击Add To Jcenter提交Jcetner审核即可

会出现那些坑

问题1

当前AndroID Studio的版本已经到了 3.5,gradle的版本达到了5.4.1, 编译上传的时候会报如下错误

  					WARNING: API 'variantOutput.getPackagelibrary()' is obsolete and has been replaced with 'variant.getPackagelibraryProvIDer()'.  					It will be removed at the end of 2019.  					For more information, see https://d.androID.com/r/tools/task-configuration-avoIDance.

解决方案:将gradle的版本降低至4+

问题2

. 将项目上传到Jcenter时会上传失败,报如下的错

    http/1.1 404 Not Found [message:Repo 'maven' was not found]

解决方案:因为bintrary默认会为项目设置远程仓库名为maven,但是我们在创建项目时其远程仓库名不是maven,所以我们需要根据实际情况设置

问题3

注册账号时注册成为企业账号,将项目上传到bintrary时,发现没有Add To Jcenter按钮

解决方案:使用正常的注册登入方式,若已经被注册为企业账号,可以取消掉企业账号,转为普通账号,但是创建的项目可能会被清掉

问题4

GBK编码问题,javadoc编码问题


解决方案:在项目的build.gradle下设置编码,或者在module下build.gradle中添加该注释

  //1.在项目的build.gradle下	buildscript {	  .....	    //注释中有汉字,需要这里处理	    tasks.withType(Javadoc) {	        options.enCoding = "UTF-8"	    }	 	}     //2.在项目的build.gradle下,与AndroID 以及dependencIEs平级  tasks.withType(Javadoc) {   options.enCoding = "UTF-8" }
总结

以上是内存溢出为你收集整理的将项目通过Android Studio发布到Jcenter仓库全部内容,希望文章能够帮你解决将项目通过Android Studio发布到Jcenter仓库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存