返回顶部
首页 > 资讯 > 后端开发 > GO >在本地使用外部服务的Go模块
  • 565
分享到

在本地使用外部服务的Go模块

2024-04-04 23:04:10 565人浏览 安东尼
摘要

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《在本地使用外部服务的Go模块》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容背景: 两个应用程序

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《在本地使用外部服务的Go模块》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

背景:

两个应用程序 - ab

application 'a' 包含两个 go.mod 文件

a/pkg/test/go.mod:(我在这里保留应用程序特定的结构,这些结构将被愿意集成的其他服务重用)

module a/pkg/test
go 1.14
require (
   some_dependencies vx.x.x
)

a/go.mod:(根模块导入 pkg/test 作为本地模块)

module a
go 1.14
require (
   a/pkg/test v0.0.0
)
replace a/pkg/test => ./pkg/test/

现在 application 'b' 希望通过简单地导入来重用 application 的 a pkg/test 包

优势:

此解决方案允许任何集成服务仅提取 pkg/test 模块的依赖项,而不是导入整个应用程序树

当前解决方案:

application 'b' 使用以下 go.mod 导入 application 'a' 的 pkg/test 模块:

module b
go 1.14
require(
   some_dependencies vx.x.x
   a/pkg/test v0.0.0
)
replace a/pkg/test => gitlab.com/a/pkg/test v0.0.0-02345798575346-72cs44671e34

现在我真的不喜欢在这里使用 commit-timestamp_commit-sha 方法。

问题:

我想使用 tags 来导入 a/pkg/test 模块。 存储库 a 创建了一个标签,例如 v2.0.0。当我用 v2.0.0 替换 v0.0.0-02345798575346-72cs44671e34 时,运行 go mod tidy/download 后,我收到以下错误输出:

reading gitlab.com/A/pkg/test/pkg/test/go.mod at revision pkg/test/v2.0.0: unknown revision pkg/test/v2.0.0

问题:

我认为错误的包命名/模块命名/标记等可能会导致此类错误。问题是我在这里缺少什么才能使其清晰并起作用?


解决方案


要在 git 存储库中获取嵌套的 go-modules 包,只需将标签添加到包含 go.mod 文件的目录 - 然后附加您的版本。

因此,在您的情况下,目录是 a/pkg/test ,假设您想使用 semver v0.0.1 ,您可以像这样标记:

git tag -a "A/pkg/test/v0.0.1" -m "initial test checkin"
git push origin --tags                            # push all local tags
# git push origin "A/pkg/test/v0.0.1"             # push a single tag

请注意:来自 go wiki Should I have multiple modules in a single repository? - russ cox(vgo 即今天的 go-modules 的创建者)警告:

理论要掌握,实操不能落!以上关于《在本地使用外部服务的Go模块》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!

您可能感兴趣的文档:

--结束END--

本文标题: 在本地使用外部服务的Go模块

本文链接: https://lsjlt.com/news/595880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在本地使用外部服务的Go模块
    本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《在本地使用外部服务的Go模块》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容背景: 两个应用程序...
    99+
    2024-04-04
  • go module化 import 调用本地模块 tidy的方法
    目录如何调用自己写的本地模块其他注意点:参考文献如何调用自己写的本地模块 在项目根目录$ go mod init 任意名称(比如abc.com/cde)编写本地模块,在其他文件里im...
    99+
    2024-04-02
  • 如何使用Go语言的Vs代码调试部署在本地服务器上的RestApi
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《如何使用Go语言的Vs代码调试部署在本地服务器上的RestApi》,在实现功能的过程中也带大...
    99+
    2024-04-04
  • 使用pyton在本地指定目录模拟服务器
    1.cd 到指定目录 2.运行命令   python 3之前  python -m SimpleHTTPServer 8888 &   python 3+  python -m http.server 8888 & ...
    99+
    2023-01-31
    服务器 目录 pyton
  • 钉钉部署在本地服务器
    部署在本地服务器的钉钉应用可以更加灵活地适应不同企业的需求。无论是中小型企业还是大型企业,都可以使用钉钉来进行通讯和协作,因为它具有高度的稳定性和可靠性。此外,由于钉钉本身具有高度的可定制性,企业可以根据自己的需求来定制应用的功能和界面,从...
    99+
    2023-10-28
    服务器
  • 在 go 模块文件 (go.mod) 中使用“go”版本指令有什么含义
    在 go 模块文件 (go.mod) 中使用"go"版本指令是Go语言中的一种特殊指令,它的作用是指定项目所使用的Go语言版本。在 go.mod 文件中,通过编写类似于"go 1.15...
    99+
    2024-02-10
    go语言
  • 在本地使用带有 go mod 的子包
    今天编程网给大家带来了《在本地使用带有 go mod 的子包》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点...
    99+
    2024-04-04
  • 在 gomacro 中使用项目模块版本
    从现在开始,努力学习吧!本文《在 gomacro 中使用项目模块版本》主要讲解了等等相关知识点,我会在编程网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,...
    99+
    2024-04-05
  • 本地Apache服务器怎么添加php7模块
    这篇文章主要讲解了“本地Apache服务器怎么添加php7模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“本地Apache服务器怎么添加php7模块”吧!Apache的一些基础命令Opti...
    99+
    2023-06-20
  • 本地部署和云服务器部署的区别在哪
    本地部署和云服务器部署都是将应用程序部署到本地计算机上。但是,两者之间的一个重要区别是本地部署需要处理物理硬件资源,包括机器、电源、网络和存储等。而云服务器部署则不需要进行物理硬件资源的管理,它是通过云平台来提供计算资源的。 另外,本地部...
    99+
    2023-10-28
    区别 服务器
  • 使用IDEA部署Web项目到本地的Tomcat服务器
    一、IDEA配置tomcat步骤: 1 Tomcat下载与安装启动 下载地址:http://tomcat.apache.org/ (左侧Download选择下载版本)1.1.1 安装: 1、下载好了解压到一个没有特殊符号的目录中(一般纯英文...
    99+
    2023-09-11
    tomcat 前端 intellij-idea
  • 使用模块时go项目的工作目录在哪里?
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《使用模块时go项目的工作目录在哪里?》,在实现功能的过程中也带大家重新温习相关知识点,温故而...
    99+
    2024-04-04
  • vue本地服务不能被外部IP访问怎么办
    这篇文章主要介绍了vue本地服务不能被外部IP访问怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。解决 webpack-dev-serv...
    99+
    2024-04-02
  • 项目部署在云服务器和本地服务器的区别在哪
    部署在云服务器和本地服务器之间存在一些区别,具体如下: 云服务器是将数据存储在云服务器上的一种服务器,这种服务器的存储、处理、备份都是由云服务器提供的。在使用云服务器之前,需要将数据从本地服务器传输到云服务器上进行存储和处理。 云服务器...
    99+
    2023-10-27
    服务器 区别 项目
  • 如何实现layui.use模块外部使用其内部定义的js封装函数方法
    这篇文章主要介绍如何实现layui.use模块外部使用其内部定义的js封装函数方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用途:常用于监听输入框(其内部不提供监听函数)。用法:...
    99+
    2024-04-02
  • 测试使用替换指令导入的本地 go 模块并使用主文件夹中的供应商目录
    php小编柚子在本文中将为大家介绍如何使用替换指令在本地导入go模块,并使用主文件夹中的供应商目录。替换指令是Go语言中的一项强大功能,可以让我们在开发过程中更灵活地引入本地模块,提高...
    99+
    2024-02-10
    go语言
  • 添加和使用 Go 模块库次要版本(主要版本 > 2)
    问题内容 我一直致力于将我们的私有库转换为 go 模块,并且克服了发布和使用库的新主要版本(例如 tssgit.reyrey.com/teschste/go-httpmailer/v3...
    99+
    2024-02-05
  • 项目部署在云服务器和本地服务器的区别
    部署在云服务器和本地服务器之间存在一些区别,这些区别可能会影响您的工作效率和性能。下面是一些常见的区别: 成本: 由于云服务器通常是按量付费的,因此您可能不需要考虑成本。而本地服务器通常是按月付费的,因此您需要为每个月的数据库备份和网络...
    99+
    2023-10-26
    服务器 区别 项目
  • go module是如何使用本地包的
    小编给大家分享一下go module是如何使用本地包的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!go module的使用非常简单初始化go.modgo&nbs...
    99+
    2023-06-21
  • 本地部署和云服务器部署的区别
    本地部署和云服务器部署的主要区别在于数据中心的位置和规模。 本地部署意味着将设备和服务器放在本地环境中进行配置和管理,无需在云服务器提供商的数据中心进行托管或部署。通常情况下,本地部署的硬件和软件通常不会经过任何处理,因此可以保持高可用性...
    99+
    2023-10-27
    区别 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作