背景:
在大型项目中,一个项目被划分成很多模块,如何快速的将一些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中定义的。
这样上传完就算完成了。