背景:

在大型项目中,一个项目被划分成很多模块,如何快速的将一些module提供给他人使用,已成为项目中集成必不可少的一部分。常见的就是依赖

在Android中,dependencies{}的模块是管理依赖加载的,常见的有

implementation 'androidx.multidex:multidex:2.0.0'

implementation('androidx.appcompat:appcompat:1.0.0') { force = true }

implementation('androidx.legacy:legacy-support-v4:1.0.0') { force = true }

implementation('com.google.code.gson:gson:2.8.0')

这些是我们比较常见的一些依赖库,如何将自己的项目也变成aar提供给他人呢?

常见的有两种:

第一种:使用githunb,将自己的代码上传到github,利用github平台,将自己的代码库制作成依赖库

第二种:我们自己搭建maven库(今天所要讲的重点)

1.maven私服建议大家首选:Nexus私服。关于Nexus私服搭建,大家自己可以做一个,这里不再过多讲解,如果有问题,可以新增一期私服搭建

2.Android项目 maven集成

1.新建一个可以上传的gradle工具

在项目下新建:push_maven.gradle

配置如下内容

//引用maven插件

apply plugin: 'maven'

uploadArchives { //新增 ,因为Android Studio gradle 支持maven插件,所以可以添加此task

configuration = configurations.archives

repositories {

mavenDeployer {

// 指定maven仓库url

repository(url: RELEASE_URL) {

// nexus登录默认用户名和密码

authentication(userName: USER_NAME, password: PASSWORD)

}

pom.project {

groupId GROUP_ID

artifactId ARTIFACT_ID

version VERSION

packaging PACKAGING //

//description '' //更新描述

}

}

}

}

2.配置账号和库地址

//maven仓库的地址和密码

RELEASE_URL=//正式库地址

SNAPSHOT_URL=//快照地址

USER_NAME=//账号

PASSWORD=//密码

 //包的信息

GROUP_ID=//组id 例如:com.abc.com

ARTIFACT_ID=//模块id 或者叫库名

VERSION=//版本号

PACKAGING=aar //类型,现在基本已都是以aar

如:

我们有一个私服,

地址如下:http://maven.aliyun.com/nexus/content/groups/public/  

正式库:RELEASE_URL="http://maven.aliyun.com/nexus/content/groups/public/releases"

快照库:SNAPSHOT_URL="http://maven.aliyun.com/nexus/content/groups/public/snapshots"

USER_NAME=woniu123

PASSWORD=123456

GROUP_ID="com.woniu.mobile.action"

ARTIFACT_ID=woniu_video

VERSION="1.0.0.1"

PACKAGING=aar

一般这些信息会存放在当前module模块下的gradle.properties,如果没有该文件,可以新建一个

使用:如果打包上传成功,我们如何依赖我们这个库?

implementation('com.woniu.mobile.action:woniu_video:1.0.0.1')

依赖内容是三个参数:(GROUP_ID:ARTIFACT_ID:VERSION)

这还不算完,你这时候会发现依赖找不到,因为你的项目不支持该私服

新增私服maven地址:工程的build文件下,否则implementation找不到maven地址

repositories {

maven {

url 'http://maven.aliyun.com/nexus/content/groups/public/'

}

}

打包与上传:

介绍了如何配置和使用,接下来是该如何把项目打成aar,上传到私服地址

0.引用push_maven.gradle上传工具到module 的build中

apply from: 'push_maven.gradle'

引入之后,在gradle 的Tasks下的update中,会多一个工具按钮uploadArchives,这就是我们上面新增的push上传的工具名称

1.打包:

 我们是通过gradle的来打包,找到gradle下的自己项目module,找到module的Tasks,打开build,

点击build自动执行,执行完,log会提示success

2.上传

把编译好的aar,通过tasks下的update下的uploadArchvies, 工具上传,uploadArchives 是我们在push_maven.gradle中定义的。

这样上传完就算完成了。

注意:每次上传都需要修改版本号,Release不支持覆盖,否则会报错。snapshots快照是支持版本多传,如果你当前不改变版本号,上传以后,maven库会有会以当前版本号为前缀,后面拼接当前系统时间和随机数加自增长。

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: