Android项目发布到本地仓库共享给多个项目使用

【前言】

     对于大多数人来说,要把一个Android项目作为依赖库提供给另一个Android项目使用时,都是先编译成aar或者jar,然后复制到另一个项目中,这样子比较繁琐,而且若是作为依赖库的Android项目,还依赖了第三方项目的,打包成aar或者jar之后,另一个项目依然还是需要自己手动添加aar所依赖的第三方项目库。那么,是否有更好的解决办法呢?当然就是把你的Android项目发布的maven仓库中,因为没有搭建自己的线上maven仓库,这里就只演示发布到本地仓库的步骤

一、发布到本地仓库

1、在作为依赖库的build.gradle中,编写发布到本地仓库脚本

def localRepoURL = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath

apply plugin: 'maven' //指定使用 maven
uploadArchives {
    print(localRepoURL)
    repositories {
        mavenDeployer {
            pom.groupId = "com.sswl.plugindev" //包名
            pom.artifactId = "dev"      //SDK 功能,自定义一个即可
            pom.version = "v1.0.37"         //版本号
            pom.packaging = 'aar'   //定义打包
            repository(url: localRepoURL) //传入本地仓库地址
        }
    }
}
//设置每次build完成之后执行uploadArchives任务
build.finalizedBy(uploadArchives)

或者写成这样也可以

def localRepoURL = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath

apply plugin: 'maven' //指定使用 maven
uploadArchives {
    print(localRepoURL)
    repositories {
        mavenDeployer {
            pom.project {
                name = project.name
                print("名字:"+project.name)
                packaging = 'aar'
                description = '我是插件'
                groupId = "com.sswl.plugindev"
                artifactId = "dev"
                version = "v1.0.38"
            }
            repository(url: localRepoURL) //传入本地仓库地址

        }
    }
}

//设置每次build完成之后执行uploadArchives任务
build.finalizedBy(uploadArchives)

1)自定义变量localRepourl赋值为本地仓库地址,一般Android Studio的本地仓库都是放在用户主目录下的.m2/repository目录下的,我们可以打开瞅一瞅
在这里插入图片描述
2)uploadArchivesrepositoriesmavenDeployer这些都是内置好的task,不能随便自定义,按要求写就好
3)各项配置说明
pom.groupId :定义 这个库的包名,个随便自定义即可
pom.artifactId :SDK 功能,自定义一个即可
pom.version :该库的版本号,也是自定义一个字符串版本号即可
pom.packaging:打包成aar,其实这个不声明也无所谓,感觉没啥用,写成jar还是最终打成aar
repository(url: localRepoURL):传入发布到的本地仓库地址
2、配置完成之后 ,就可以运行该任务了,点击一下左侧的运行按钮就会发布本地仓库中
在这里插入图片描述
3、我们打开用户主目录下本地仓库,比如我的:C:\Users\Administrator\.m2\repository\com\sswl\plugindev\dev,可以到发布的各个版本
在这里插入图片描述
4、打开刚刚发布的v1.0.38目录,可以看到打包好的aar
在这里插入图片描述
5、打开dev-v1.0.38.pom文件,可以看到这个依赖库所依赖到的第三方库,到时被其他项目引入之后也会自动下载引入进去
在这里插入图片描述

二、引用本地仓库的依赖库

1、在项目目录下的build.gradle:allprojects-repositories 中 ,添加mavenLocal()即可

allprojects {
    repositories {
        google()
        jcenter()
        mavenLocal()
    }
}

【备注】假如刚才发布的仓库地址不是默认的本地仓库,那就需要类似这样声明

allprojects {
    repositories {
        google()
        jcenter()
        maven { url '你的本地地址' }
    }
}

2、然后,在你对应模块的build.gradle中,就像往常引用第三方库一样引入你发布的依赖库即可

dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation('com.sswl.plugindev:dev:v1.0.38')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值