巧用 Gitee/GitHub 创建私人Android studio库的 Maven 仓库

使用AS经常会创建很多通用的库,可能有很多工程会依赖,一般有几种办法在其他工程依赖:

  • 直接imports库的对应模块。
  • 在本地创建maven仓库,其他项目通过本地仓库引用。
  • 小型团队在局域网使用nexus3搭建私有maven仓库。
  • 将库发布到jCenter / Maven Central。

使用以上四种都有一些缺点,前三种只能在本地或者局域网,第四种可以最大化实现共享,但是发布到jCenter / Maven Central速度非常慢等。是不是有其他方法呢?
有。用Gitee/GitHub可以实现,因国内GitHub访问速度也是很慢,以Gitee和Android studio为例。其实现思路为:

1、 AS生成本地库
2、上传Gitee/GitHub仓库
3、AS其他项目依赖Gitee/GitHub仓库

Android Studio 生成本地库

在对应模块的build.gradle增加如下内容

apply plugin: 'maven'

uploadArchives {
    repositories.mavenDeployer {
        // 本地仓库路径
        repository(url: 'file://D:/repository/')
        // 唯一标识
        pom.groupId = "com.example"
        // 模块名称
        pom.artifactId = "test"
        // 版本号
        pom.version = "1.0.0"
    }
}

使用命令一步生成所有库到本地仓库

gradlew  uploadArchives

使用AS单独生成某个库到本地仓库,如图所示点右键 run生成。

在这里插入图片描述

上传Gitee/GitHub仓库

在Gitee/GitHub创建一个仓库,如maven_repo,再进入本地仓库“D:/repository”,可以使用以下命令上传到远程仓库。

cd D:/repository
git init
git add .
git commit -am "XXXXXXX"
git remote add origin <Gitee/GitHub 仓库地址>
git push origin master
AS其他项目依赖Gitee/GitHub仓库

获取Gitee/GitHub仓库的原始文件URL。
Gitee为https://gitee.com/<用户名>/<仓库名-maven_repo>/raw/<分支-master>
Github为https://raw.githubusercontent.com/<用户名>/<仓库名-maven_repo>/<分支-master>
配置项目build.gradle,增加maven仓库地址,如下所示:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        maven{url 'https://gitee.com/XXXXX/mvn_repo/raw/master'}
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven{url 'https://gitee.com/XXXXX/maven_repo/raw/master'}
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

下一步在app的build.gradle依赖库

	implementation 'com.example:test:1.0.0'

至此Gitee/GitHub 创建私人Android studio库的 Maven 仓库已经完成。但是测试时发现如果Gitee/GitHub 创建是私有库,按如上配置无法成功下载test库,所以目前只能支持公开库才能下载。

Android Studio 生成本地库到当前项目目录

再深思另一个问题,项目生成库到本他仓库,需要再用git命令再上传到远程仓库,哪我是否可以直接将本地仓库建立在项目的目录下,这样生成的库可以直接用AS或者命令一步上传远程仓库,修改maven的url地址。


apply plugin: 'maven'

def repository_url() {
    File file = new File(getRootDir().getAbsolutePath() + File.separator + "repository")
    return file.toURI().toURL()
}

uploadArchives {
    repositories.mavenDeployer {
        // 本地仓库路径
        repository(url: repository_url())
        // 唯一标识
        pom.groupId = "com.example"
        // 模块名称
        pom.artifactId = "test"
        // 版本号
        pom.version = "1.0.0"
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值