Submodule命令:android如何将自己项目中的某个Module作为gitlab中第三方公共库

news2025/1/18 17:11:35

一、创建远程公共库

1、Android Studio创建本地仓库

在这里插入图片描述

创建一个新的module

在这里插入图片描述

在新建module中添加代码(此处示例代码)

在这里插入图片描述

右击新建的module,打开新建module的命令行界面,
因为我们只上传这个module的代码,而不是整个项目的代码

在这里插入图片描述

命令行中输入以下命令,将新建module初始化为一个git本地仓库

git init
git add .
git commit -m "sdk本地代码提交"
git branch dev_sdk
git checkout dev_sdk

2、Gitlab中创建新的 Project

在这里插入图片描述

复制项目地址

git@gitlab.com:CodeMonkeyLeon/leonremotesdk.git

在这里插入图片描述

3、上传本地代码到Gitlab仓库

在新建module的命令行页面(右击新建module打开的命令行)输入以下命令

//关联远程仓库
git remote add origin git@gitlab.com:CodeMonkeyLeon/leonremotesdk.git
//上传代码
git push -f -u origin dev_sdk

上传成功后就可以在Gitlab中看到我们的代码,
只有新建module的代码,而不是整个项目的代码
该module可以被其他项目引用

在这里插入图片描述

二、使用公共库代码

1、新建项目

在这里插入图片描述
在这里插入图片描述

初始化为git仓库

git init
git add .
git commit -m "新建项目"
git branch dev
git checkout dev

2、引入公共库代码

仓库地址 https://gitlab.com/CodeMonkeyLeon/leonremotesdk.git

在这里插入图片描述

使用submodule命令引入公共库

git submodule add https://gitlab.com/CodeMonkeyLeon/leonremotesdk.git

代码同步结束后,就可以看到项目文件夹里多了两个文件
在这里插入图片描述

在这里插入图片描述

但这个module是个假module,因为看不到他的gradle配置文件,只有app的gradle文件

需要进行以下配置,这个引用的模块才可以作为真正的module使用

在setting.gradle中添加以下代码

include ':leonremotesdk'
project(':leonremotesdk').projectDir = new File("leonremotesdk")

在这里插入图片描述

在build.gradle(:app)中添加以下代码

implementation project(':leonremotesdk')

在这里插入图片描述

然后同步代码,引入的远程mudule就可以作为真正的module使用了。

在这里插入图片描述

3、使用公共库代码

在app模块中调用公共库代码

在这里插入图片描述

三、公共库代码更新

在这里插入图片描述

1、本地Sdk模块代码更新上传

本地SDK仓库的leonSdl模块代码更新后,要在leonSdk模块的目录下进行git操作。
在这里插入图片描述

git add .
git commit -m "sdk代码更新"
git push origin dev_sdk

2、工程项目更新sdk代码

MyProject也要在leonremotesdk模块目录下进行git操作
在这里插入图片描述

git push origin dev_sdk

四、报错“Failed to connect to github.com port 443 : Timed out”

若上传本地代码或下拉仓库代码时,命令行报错“Failed to connect to github.com port 443 : Timed out”,则需更改地址和端口配置

可以将仓库地址改为https的地址,然后查找本地地址和端口

在这里插入图片描述

然后在命令行中输入以下命令即可

git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy http://127.0.0.1:7890

然后重新上传或下拉,
若此时弹框需要输入账号密码,
则输入自己的gitlab账号和密码即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/387033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年03月IDE流行度最新排名

点击查看最新IDE流行度最新排名(每月更新) 2023年03月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

【vue】环境安装与实例创建

vue是一套用于构建前端界面的框架。 文章目录1. vue环境安装2. 创建项目vue init创建项目Vite创建项目vue create创建项目vue ui创建项目3. 打包项目1. vue环境安装 首先安装nodejs并配置npm国内镜像:https://zhuanlan.zhihu.com/p/442215189 升级或安装cnpm并查看…

Java 字符编码

编码:数据存储进计算机中需要转换为二进制存储,这个过程就是编码。 解码:计算机读取数据并展示在页面上,需要将二进制转换为人类语言的过程,叫做解码。 乱码:如果编码和解码时使用的码表不一样,…

ChatGPT火爆,元宇宙“熄火”?别操之过急,也别敷衍了事

近期,在ChatGPT火爆的同时,元宇宙“遇冷”的消息引起关注。据科技圈流传,大量元宇宙聊天群一夜之间改名为ChatGPT聊天群。ChatGPT火爆出圈导致元宇宙“熄火”,真的是这样吗?ChatGPT与元宇宙二者有怎样的底层逻辑关联&a…

Linux进程信号(产生、保存、处理)/可重入函数概念/volatile理解/SIGCHLD信号

首先区分一下Linux信号跟进程间通信中的信号量,它们的关系就犹如老婆跟老婆饼一样,没有一毛钱的关系。 信号的概念 信号的概念:信号是进程之间事件异步通知的一种方式,属于软中断。比如:红绿灯是一种信号&#xff0c…

机器学习:基于神经网络对用户评论情感分析预测

机器学习:基于神经网络对用户评论情感分析预测 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞&#x1f4…

深入理解RDBMS-学习笔记

1 经典案例 1.1 红包雨 1.2 事务ACID 1.3 红包雨与ACID 1.3.1 原子性 1.3.2 一致性 1.3.3 隔离性 1.3.4 持久化 1.4 红包雨与高并发 1.5 红包雨与高可靠 2 发展历史 2.1 前DBMS时代 2.1.1 人工管理 2.1.2 文件系统 1950s,现代计算机的雏形基本出现。1956年IB…

怎样对一张图像进行直方图均衡化?(或者图像均衡化代码?)

怎样对一张图像进行直方图均衡化?(或者图像均衡化代码?) 图像增强概述 图像增强是有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差…

认识异或运算

1.什么是异或运算 异或运算是位运算的一种,符号为:^ 运算规则为:相同为0,不同为1 例如 性质: N ^ 0 N N ^ N 0 A ^ B B ^ A (A ^ B) ^ C A ^ (B ^ C)N ^ 0 N public class XorOperation {public static void …

【算法基础】排序 插入、归并、堆、快速 升序+降序

目录 1.排序 1.1 插入排序 1.2 归并排序 1.3 推排序 1.4 快速排序 1.排序 1.1 插入排序 时间复杂度:O(n)~O(n*n) 空间复杂度:O(1) 稳定 步骤: 1.设第一个元素为有序列。 2.取有序列后面的一个元素。 3.将该元素插入到有序列中的正确位…

【C语言学习笔记】:一维数组指针,二维数组指针

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] { 99, 15, 100, 888, 252 };为例&am…

Linux | 调试器GDB的详细教程【纯命令行调试】

文章目录一、前言二、调试版本与发布版本1、见见gdb2、程序员与测试人员3、为什么Release不能调试但DeBug可以调试❓三、使用gdb调试代码1、指令集汇总2、命令演示⌨ 行号显示⌨ 断点设置⌨ 查看断点信息⌨ 删除断点⌨ 开启 / 禁用断点⌨ 运行 / 调试⌨ 逐过程和逐语句⌨ 打印 …

C/C++开发,无可避免的多线程(篇二).thread与其支持库

一、原子类型与原子操作 1.1 原子类型与操作介绍 在前一篇博文中,多线程交互示例代码中,给出了一个原子类型定义: // 原子数据类型 atomic_llong total {0}; 那么什么事原子数据类型呢,和c的基础数据类型有什么不同呢&#xff1a…

实验一 Python编程基础

目录 一、实验目标 二、实验内容 1.绘制如下图形 ,一个正方形,内有三个红点,中间红点在正方形中心。 2.使用turtle库绘制如下图形: 3.绘制奥运五环图 4.回文问题 5.身份证性别判别 6.数据压缩 7.验证哥德巴赫猜想 8.使…

JVM常用指令

JVM常用指令1.准备工作2.jps3. jconsole4.jstat5.jstack6.jmap7.jvisualvm工具8.自动dump内存信息1.准备工作 在idea中编写代码 public class JVMTest {Testpublic void test() throws InterruptedException {while (true) {Thread.sleep(1000);System.out.println(123);}} }…

Unity 入门精要01---标准光照模型

本节基础知识结构 基础光照部分 环境光 在标准光照模型中,我们会环境光来代替间接光照 Cambient g amient 我们可以在Windows->Rendering->Lighting->Enviroment进行修改Ambient 的Color 自发光 直接在最后片元着色器输出颜色之前把材质的自发光颜色添…

深圳大学计软《面向对象的程序设计》实验13 运算符重载

A. 三维坐标点的平移(运算符重载) 题目描述 定义一个三维点Point类,利用友元函数重载"“和”–"运算符,并区分这两种运算符的前置和后置运算。 要求如下: 1.实现Point类; 2.编写main函数&a…

关于2023年造林施工、林业设计资质,新办、年审的最新通知!

一、资质类别省林学会本年度开展认定的资质种类包括:造林绿化类(含施工资质、监理资质)、林业有害生物防治类(含防治资质、监理资质)和林业调查规划设计类。二、认定标准资质认定执行以下标准:1.造林绿化施…

边缘计算:万字长文详解高通SNPE inception_v3安卓端DSP推理加速实战

本文是在以下文章的基础上编写,关于SNPE环境部署和服务器端推理可以参考上一篇文章: 边缘计算:万字长文详解高通SNPE inception_v3推理实战_seaside2003的博客-CSDN博客 本文最/关键的是利用SNPE在安卓环境不同的runtimes(CPU/G…

高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结

1 背景:此需求apk距离之前更改时间将近9个月,我们这边原来跟驱动那边对接指令和角度 后续没有改过,测试部说apk cameaid提示信息不正确。 2 原因:因为之前用的1.0基线(Android 10) 后面由于客户功能需求变更&#xff…