如何通过JCenter 和 Mavenue Central 从 Android Studio 分发自己的Library库
来源:互联网 发布:lua调用linux c库 编辑:程序博客网 时间:2024/06/05 16:30
在Adnroid Studio中,如果你想在你自己的项目中引用其他任何的第三方库。只需要在项目的build.gradle中添加如下简单的一行代码。
就这样,这个library库还不能被使用。
这个看起来很酷,但是你可能好奇,这个库Android Studio 是从哪里查询来的呢?这篇博客将会详细介绍整个工作流程,包括怎样发布你自己的库,并分享给世界其他地方的开发者。这不仅使世界变得美好,而且让你自己看起来也很牛x。
Android Studio 从哪里获取库?
先从第一个简单的问题开始,相信你也不是完全知道Android Studio从哪里获取到库。难道是谷歌给我们搜索出来的,并下载到了我们的项目中么?
好吧,这个并不是完全正确的。Android Studio 从 Maven 存储库服务器中下载库文件,这个被我们定义到了build.gradle中。(Apache Maven是Apache工具,它提供了一个分发库的文件服务器)。基本上这里只有2个标准的服务器用于托管Android的库,如JCenter和Maven Central。
JCenter
JCenter 是由bintray.com托管的Maven存储库。你可以在这里http://jcenter.bintray.com/找到整个仓库。
为了在你自己的工程中使用这个仓库,你需要定义一个仓库,像下边这样,在build.gradle文件中。
Maven Central
Maven 是由sonatype.org托管的Maven存储库。你可以在这里https://oss.sonatype.org/content/repositories/releases/找到整个仓库。
为了使用Maven 存储库,你可以定义一个仓库,像下边这样,在build.gradle文件中
需要注意一点,尽管JCenter和Maven Central 是两个标准的安卓存储仓库,但是他们被托管在两个完全不同的地方。由两个提供者提供,并且相互之间没有任何的关联。在Maven Central中可能找不到jcenter中可用的内容,反之亦然。
随后你可以通过相同的方法,使用任何库文件。
- /classes.jar (mandatory)
- /res/ (mandatory)
- /R.txt (mandatory)
- /assets/ (optional)
- /libs/*.jar (optional)
- /jni/<abi>/*.so (optional)
- /proguard.txt (optional)
- /lint.jar (optional)
接下来,我们将通过修改local.properties来定义用于bintray身份验证的用户名和api密钥以及创建密钥的密码。我们需要把这些东西放在这个文件中,原因是这些信息是敏感信息,身份信息,不应该被分享到任何地方,包括版本控制。幸运的是,自创建项目以来,该local.properties文件已经添加到.gitignore。因此,这些敏感数据将无法无意上传到git服务器。
在local.properties这里添加三行配置代码
第一行是用户名,第二行是app_key,在bintray中的edit profile界面中可以获得。第三行是gpg密码,创建好之后保存。
最后一个需要编辑的文件是build.gradle ,打开并且添加以下代码
将bintrayName更改为上面创建的包名称,并且还可以更改其余的配置信息。从上面的脚本中,每个人都可以使用这个库文件,使用以下的gradle内容添加依赖
最后一步是应用两个脚本,用于构建库文件,并将构建的文件上传到bintray,通过在文件末尾附加相同的build.gradle文件(为了方便,我使用的是github托管的文件的直接链接)
完成!现在你可以准备上传库文件到bintray了。
Part 5 : 上传库文件到你的bintray空间。
现在可以上传库文件到你的bintray了,做如下操作,请打开android studio 的Terminal控制台
第一步是检查代码的正确性,并构建库文件(aar,pom等),键入以下命令来执行此操作。
如果这里没有什么问题,将会显示
现在我们已经进行了一半,下一步是使用以下命令将内置文件上传到bintray。
如果他显示如下所示,那么就是成功了。
在bintray web界面检查你的包,你会在版本区域看到版本变化。
点击它,并查看文件选项卡,你将看到上传的库文件放在这里。
恭喜你,你自己的库文件已经上传成功,并且任何人都可以使用它了。
但是呢,不要高兴的太早了,这个库文件现在仅仅是在你自己的maven存储库中,还没有到jcenter中。如果有其他的开发者想使用这个库文件,他们必须添加如下依赖
你可以从bintray web界面找到你自己的maven 仓库的链接,或者只是用你的bintray用户名替换nuuneoi的。我希望你自己尝试点开这个链接,看看里面究竟发生了哪些变化。
如上所述,共享库的最佳做法不是让开发人员定义这样的复杂的东西。想象一下,我们必须添加10个网址来使用这10个存储库么?这简直是噩梦,所以让我们的库文件从我们的存储库传递到jcenter,将极大的提高开发人员的用户体验。
Part 6 :同步自己的库文件到Jcenter
同步自己的库到JCenter,这个过程是很简单的,只需要在网页上点击Add to JCenter即可,
然后什么都可以不填,直接点击发送按钮即可。
接下来就是需要等待2-3个小时,需要bintray团队审核通过。一旦同步申请通过,你就会收到一封邮件,提醒你已经审核通过。审核通过以后可以查看网页接口,你将可以在Linked To 界面看到一些变化。
从这以后,任何的开发者都可以通过Jcenter仓库,使用你的库文件了,只需要添加以下简单的一行代码。
想检查你的库二进制文件是否存在,你可以访问http://jcenter.bintray.com 并浏览到与你的库的组ID和工件ID匹配的目录,比如在上这个例子中,地址应该是com -> inthecheesefactory -> thecheeselibrary -> fb-like -> 0.9.3
请注意,链接到JCenter是一次性的动作,从现在开始,如果你在包中进行任何修改,例如上传新版本的二进制文件,删除旧版本的二进制文件等。此更改也会影响到Jcenter位于不同的位置,所以你可以需要等待2-3分钟左右,才能让Jcenter同步更改。
请小心一下,如果你决定删除整个软件包,则在这种情况下,放置在JCenter存储库中的库文件将不会被删除,而他们像僵尸文件一样,没有人可以删除她了。所以我建议你,如果你想删除整个软件包,请先删除web界面中的每一个版本,然后再删除软件包。
Part 7 :将库文件转发到Maven Central
并不是所有的安卓开发者都使用JCenter库,仍有一部分开发者使用mavenCentral,所以将库上传到Maven Central 也是同样重要的。
将存储库从Jcenter转到Maven Central,你需要首先实现两个任务:
1)Bintray包必须已经链接到Jcenter
2)Maven Central 上的存储库已经被批准开放
如果你已经通过了这些资格,将库文件转发到 Maven Central 的方法非常简单。只需要在软件包详细信息页面上点击Maven Central 链接。
一旦成功完成,成功同步和关闭的回购将显示在上次同步状态。但是如果有任何问题,他将显示在上次同步错误中。你必须根据情况修复问题,因为可以上传到Maven Central的库条件是相当严格的,例如 + 号不能再库的依赖关系定义的版本中使用。
一旦完成你可以在Maven Central 仓库中找到与库group/artifact ID 相匹配的目录中的二进制文件。在这个例子中,应该是com -> inthecheesefactory -> thecheeselibrary -> fb-like -> 0.9.3
恭喜你,已经成功了。虽然它需要相当多的步骤,但步骤是非常简单的。大部分是一次性的,一旦设置成功后,你几乎不需要做其他额外的步骤。
文章有点长,但希望对你是有帮助的。希望能在这里看到你伟大的库文件!!!
翻译文章, 文章来源:
https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
在最新版本的上传过程中,可能界面展示略有不同, 大致的操作过程是一样的,希望对你有帮助。
- 如何通过JCenter 和 Mavenue Central 从 Android Studio 分发自己的Library库
- 如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- wiki
- 安卓实现扫一扫识别数字
- 目标管理之SMART法则
- Spark运行架构
- jQuery效果
- 如何通过JCenter 和 Mavenue Central 从 Android Studio 分发自己的Library库
- 树的前/中/后遍历
- SDUT_2118 数据结构实验之链表三:链表的逆置
- Android和javascript相互调用2
- 还不知道阿里云证书服务如何配置部署,你out了
- mysql的常用的sql语句命令
- 网站图片页面的显示(图片标签)
- python 批量导入模块儿
- Spring 校验注解大全