天天看点

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

由于项目越来越多,有很多公共的代码都可以抽取出一个开发库出来传到公司搭建好的Maven私服,以供大家使用。

之前搭建的Maven仓库只有Release和Snapshot两个仓库,最近由于开发库有时候不稳定有bug,不便于测试。因此领导说要搭建三个版本的仓库,分别为Release版本、Beta版本、Dev版本,Snapshot版本废弃掉,下面来分别介绍下这三个版本仓库的意义。

Dev版本:是用于开发库维护人员能够很快的新增代码并上传到Maven仓库,这样其他开发人员就能够很快的获取该Dev版本的Android 开发库进行开发。

Beta版本:用于当使用Dev版本提供的开发库开发功能,并且功能开发完毕之后,准备提测给测试人员测试功能的时候,将最新的稳定的Dev版本代码上传到Beta仓库变成Beta版本,Beta版本的开发库较Dev版本稳定。

Release版本:用于测试人员测试完使用Beta版本提供的开发库开发完毕功能点,并且功能点稳定,准备发布APP的时候,最新的稳定的Beta版本代码上传到Release仓库变成Release版本,Release版本的开发库较Beta版本稳定。

下面是我最近搭建的这三个版本Release版本、Beta版本、Dev版本的仓库的截图。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

至于这三个版本Release版本、Beta版本、Dev版本的仓库如何新建,我准备在下一篇博客再写,因为一般搭建仓库的活不用每个人干,但是上传Android开发库到Maven私服的需求应该很多人都有。所以这篇博客先介绍如何快速创建和发布Android 开发库到Maven私服。

新建一个工程,如下图所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

如上图所示,新建一个工程MavenTest,然后新建一个Module(模块)名为ouyangpeng,这个名为ouyangpeng的Module就是我们准备测试打包成AAR上传到Maven私服的开发库。

新建好 ouyangpeng 模块之后,在settings.gradle文件中,将该module加入进去,用于编译,这一步Android Studio会自动添加好。

settings.gradle文件文件代码如下:

在该Module里面随便新建一个类,名为MavenTest.java,代码如下所示:

ouyangpeng 模块的build.gradle文件为

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉! 转载请保留原文地址: <a href="http://blog.csdn.net/ouyang_peng/article/details/56872556">http://blog.csdn.net/ouyang_peng/article/details/56872556</a>
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

第二步,编写上传ouyangpeng 模块打包成AAR之后上传到Maven私服的gradle脚本

首先先大致的讲解下,我会新建的三个文件的作用,如下图所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

maven_upload.gradle,该gradle脚本主要是上传Maven的gradle脚本,该脚本会去读取maven_pom.properties配置文件和maven_user.properties配置文件的内容。

maven_pom.properties,该配置文件主要是配置了要打包生成后的AAR包上传到Maven私服之后的一些Maven属性,主要包括groupId属性,artifactId属性,version属性,type属性等。

maven_user.properties,该配置文件主要是配置了Maven私服上的Release版本、Beta版本、Dev版本的仓库,以及用户名和密码等基本配置。

下面我们来具体的的讲解这几个文件。

在 ouyangpeng 模块中的build.gradle文件中,我们发现了有这么一段代码

这段代码的意思是,第一行代码将模块ouyangpeng生成为library类型的开发库,第二行代码的意思是引用名为maven_upload.gradle的gradle文件到该build.gradle文件中。

maven_upload.gradle文件代码如下:

该gradle脚本主要是上传Maven的gradle脚本,该脚本会去读取maven_pom.properties配置文件和maven_user.properties配置文件的内容,然后新建一个upload任务Task,一旦你准备发布你的开发库,在 Android Studio 中, 打开右侧的 Gradle 视图,在 Tasks &gt; upload 下,点击 uploadArchives,将会上传你的开发库到你所定义好的Maven私服的仓库上去。如下图所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

该脚本在上传到Maven仓库之前,会判断要上传的是什么版本的AAR,如果是Dev和Beta版本的AAR的话,上传之后的AAR文件在用的时候可以看到AAR里面的类的注释,如果是Release版本的AAR的话,将看不到AAR里面的类的注释

maven_user.properties配置文件主要是配置了Maven私服上的Release版本、Beta版本、Dev版本的仓库,以及用户名和密码等基本配置。如下所示

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

代码如下所示:

maven_pom.properties配置文件主要是配置了要打包生成后的AAR包上传到Maven私服之后的一些Maven属性,主要包括groupId属性,artifactId属性,version属性,type属性等,代码如下。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

如上图所示的配置,我们这次要上传的版本为DEV版本,这样我会上传POM_VERSION_DEV=0.0.2-Dev到

dev仓库地址repository.url.dev

如果想上传Beta版本的,则将POM_VERSION_TYPE属性改为BETA ,并修改属性POM_VERSION_BETA为你想上传的版本号,如改为如下的配置:

则说明你要将Beta版本的版本号为0.0.5-Beta的AAR上传到

Beta仓库地址repository.url.beta

<a href="http://172.28.10.222:8081/nexus/content/repositories/android-beta/">http://172.28.10.222:8081/nexus/content/repositories/android-beta/</a>

之后想上传不同的版本到不同的仓库的话,只需要修改该文件的POM_VERSION_TYPE属性以及相应版本的版本号属性,如POM_VERSION_RELEASE对应的Release版本,POM_VERSION_DEV对应的Dev版本,POM_VERSION_BETA对应的Beta版本。

之后其他的配置文件maven_user.properties配置文件和maven_upload.gradle文件不需要修改,只需要修改该配置文件即可根据不同的类型上传到不同的仓库。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

第一步点击右边的侧边栏 Gradle选项,第二步选中uploadArchives任务,

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

第二步点击鼠标右键,选中第一项 Run ,执行上传gradle脚本 ,如下图所示

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

例如上面我们上次版本为0.0.5-Beta的版本到Beta仓库,执行脚本之后,如果一切正常的话,Android Studio的Run窗口可以看到如下所示的提示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

点击左上角的漏斗标志,可以看到一片绿色。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

点开可以查看上次的具体内容,如下图所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

因为坚持一个约定优于配置原则,因此我们团队内部有了如下的约定,并且要求大家严格按照约定来填写配置文件,约定如下所示。

但是难免会有人不按照约定来,因此我在maven_upload.gradle文件文件中,读取maven_pom.properties配置文件和maven_user.properties配置文件的内容之后,会有相关的逻辑来判断配置的是否符合规范,如果不符合规范的话,则会抛异常提醒团队成员配置出错了。

例如我们将maven_pom.properties的部分配置配置如下所示,故意将POM_VERSION_TYPE配置为错误的BETAa,正确的只能是DEV、BETA、RELEASE 三种

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

因此就会报错,提示如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

提示我们 maven_upload.gradle’ 文件 42 行抛了异常,异常提醒为:

maven_upload.gradle’ 文件 42 行代码如下图所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

因此,只要我们将POM_VERSION_TYPE配置为正确的只能是DEV、BETA、RELEASE 三种中的一种,即可正常上传成功。

还有一种可能出错的地方是用户名和密码配置出错了,也会报错,错误如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

这儿提示是因为我们的用户名和密码填写错误了,或者是该用户名并不能在该仓库中上传文件之类的,总之配置好正确的用户名和密码之后,就可以上传成功了。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

如上图所示,我们已经将模块ouyangpeng打包成aar并上传到了Maven私服,现在我们在模块app中使用刚才上传好的库文件。

先在工程根目录下的 build.gradle 文件中 repositories (2个都要)添加如下代码片段:

配置完成之后的完整代码如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

点击可以查看刚才上传好的Beta/Dev/Release版本的开发库,如下图所示

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件
【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

在app模块的build.gradle 文件中添加如下依赖。

配置完之后的完整代码如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

然后重新同步编译一下,编译成功之后,可以看到如下所示的引用包中包含了刚才的ouyangpeng:0.0.5-Beta.aar

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

点开可以查看源代码如下所示,可以发现有注释。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

如果引用一个Release版本的,则没有注释,如下所示:

重新上传一个RELEASE版本的aar到Maven私服,配置文件如下

上传成功后,如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

现在在工程中引用该ouyangpeng:0.0.1.aar版本的AAR文件,更改build.gradle的引用配置为

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

现在打开ouyangpeng:0.0.1.aar的源代码查看,发现没有注释,如下所示:

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

至于这三个版本Release版本、Beta版本、Dev版本的仓库如何新建,我准备在下一篇博客再写。

【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服前言一、准备好要上传的Android 开发库二、编写上传Maven私服的脚本三、执行上传maven的gradle脚本文件四、使用maven私服中的库文件

继续阅读