Android 如何将自己的工程变成依赖库,打包上传maven库

背景:

在大型项目中,一个项目被划分成很多模块,如何快速的将一些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库会有会以当前版本号为前缀,后面拼接当前系统时间和随机数加自增长。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值