大丰收加盟,两男一杯,丽人途
对于android 的开源库,一般通过 jcenter 或者 jitpack 发布开源。两种方式均可~
- 尽量不要在官网注册,因为官网注册的是企业版,我们需要的是个人版
- 直接关联
github
账号进行注册 & 登录(建议)
ps:如果github账户使用了qq邮箱,163邮箱等可能会无法注册,可以尝试给github账户 增加一个邮箱例如 gmail
module
文件夹步骤如下
android studio中
module
文件夹的结构和 原有的项目文件夹(app
)非常类似view
为例子view
代码包括:1个类文件library module
的gradle
文件中配置//library build.gradle apply plugin: 'com.novoda.bintray-release' // 添加bintray插件 publish { userorg = 'dmingou' // bintray用户名 reponame = 'animatedfloatingbutton' // bintray上的新建的仓库名(repository) groupid = 'qg.odm' // 依赖名 implemention 'x:y:z'中的包名x artifactid = 'animatedfloatingbutton' // 依赖名implemention 'x:y:z'中的项目名y publishversion = '1.0.0' // 依赖名implemention 'x:y:z'中的版本号z desc = 'xxxxxxxx' // 对该开源组件的说明 website = 'https://github.com/dmingou/animatedfloatingbutton' // vcs地址 }
注意:尽量保持你的library module的名字同artifactid一样
原因:bintray上,你的项目的 maven-metadata.xml 文件的路径 为 gruopid+"/"+module名称。
假设你的groupid=qg.odm,artifactid是animatedfloatingbutton,但module名称是animatedfloatingbuttonlibrary。
此时,项目文件在qg.odm.animatedfloatingbuttondemo目录下的,但maven-metadata.xml文件却是在qg.odm/animatedfloatingbuttonlibrary目录下的,可能会有冲突。冲突:若你有多个项目groupid一样 & artifactid不一样,但module名称都是library的话,maven-metadata.xml文件的地址可能会一样,即都是:gruopid+"/"+module名称,那么就可能产生冲突。
解决方案:保持module名称和artifactid一致。
gradle
文件中配置使用插件前应该看下最新版本 bintray-release 的github地址
//project build.gradle classpath 'com.novoda:bintray-release:0.9.2' allprojects { tasks.withtype(javadoc) { options.addstringoption('xdoclint:none', '-quiet') options.addstringoption('encoding', 'utf-8') } } allprojects { tasks.withtype(javadoc) { options{ encoding "utf-8" charset 'utf-8' links "http://docs.oracle.com/javase/7/docs/api" } } }
androidstudio
的 terminal
输入以下命令// 每行命令均用空格隔开,此处是为了展示才会分行 <-- windows版本 --> gradlew.bat clean build bintrayupload -pbintrayuser=username // bintray用户名 -pbintraykey=********* // bintray上的api key -pdryrun=false <-- mac版本 --> ./gradlew clean build bintrayupload -pbintrayuser=carson-ho -pbintraykey=***************************** -pdryrun=false
//一行命令直接在terminal执行,例子如下 gradlew clean build bintrayupload -pbintrayuser=dmingou -pbintraykey=610e0e8f022cb3f353908e083932167bd0ff -pdryrun=false
jcenter
网站)注:一般来说不会一次成功,可能出错的问题(坑),详情拉到末尾总结
到这一步,你已经将项目上传到 jcenter
了,可进入查看到 package 已被添加进去
jcenter
library
了!在对应的 package 页点击对应的版本号,在maven info中可以查看
当需要进行android library
版本更新时,只需要以下2个步骤:
library module
的gradle
文件中的配置2中 重新配置版本号,其他的都不用更改!!在androidstudio
的 terminal
输入以下命令
//一行命令直接在terminal执行,例子如下 gradlew clean build bintrayupload -pbintrayuser=dmingou -pbintraykey=610e0e8f022cb3f353908e083932167bd0ff -pdryrun=false
等待一定时间,就可以看到 bintray
网站上更新了android library
的新版本。
macos可能出现的坑
// 错误日志:说明权限有问题 bash: ./gradlew: permission denied // 解决方案:获得权限,直接在终端输入以下命令 chmod +x gradlew
研究一番,类似的错误还有 **not found repo …**网上回答清一色是说配置中写错了或者检查下空格问题。然后我认真检查发现无错后,我直接按原来的命令,再次执行,然后居然就 build successful 了,有点玄学
bintray网站,package上传成功后,点击“add to jcenter”按钮时,提示以上信息。
gradlew clean build bintrayupload -pbintrayuser=bintray_username -pbintraykey=bintray_key -pdryrun=false
gradlew clean build gradlew bintrayupload.........
gradlew clean build bintrayupload...
解决办法就是手动执行task。那什么时候执行?怎么执行呢?
在gradlew clean build 和 gradlew bintrayupload… 两个task之间执行;
首先在android studio 中打开gralde task视图,先后右击run运行下面的两个task即可;
执行完以后,对应module下的build目录会生成对应的pom文件
再按照如上操作,然后再去官网点击“add to jcenter”按钮即可顺利进入申请界面
在github上传需要开源的项目,与 上传jcenter步骤中的准备工作对项目代码的操作类似。
参照 上传jcenter开源 的 准备工作的 步骤3,步骤4,步骤5
classpath ‘com.github.dcendents:android-maven-gradle-plugin:2.1’
ps:jitpack的android-maven-gradle-plugin版本要和gradle版本对应。具体的对应呢?
如下图:
在library的 build.gradle中添加代码
// jitpack maven apply plugin: 'com.github.dcendents.android-maven' // 其中username需要替换为你在github上的用户名 group='com.github.username'
如下图所示:
修改后的部分要提交到github上去!!
绑定了账户后,可以在左方的 repositories栏挑选;也可以在输入框中填入 发布release的项目地址
log栏是绿色,代表ok,点击 get it 按钮,版本提交完成后,jitpack会自动生成引用该library的配置信息:
在项目依次添加这两处,就可以使用发布的代码库了
谢谢阅读的同学~,希望文章能对您有用
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论