将项目上传到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-release3.在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+
. 将项目上传到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仓库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)