首页 > 后端开发 > Golang > 正文

如何将工作区作为依赖项导入到另一个 go 存储库中?

王林
发布: 2024-02-09 08:33:20
转载
658人浏览过

如何将工作区作为依赖项导入到另一个 go 存储库中?

php小编鱼仔在这里给大家分享一个有关Go语言的问题:“如何将工作区作为依赖项导入到另一个Go存储库中?”在Go语言开发中,依赖项管理是一个常见的问题。有时候,我们可能需要将一个工作区作为依赖项导入到另一个存储库中,以便在项目中使用。在本文中,我将为您详细介绍如何实现这个目标,以帮助您更好地管理Go语言项目的依赖项。

问题内容

我有一个多工作区项目,其结构是:

apps/go.mod
go.work
登录后复制

该项目包含一个子模块 apps 及其 go.work 文件具有:

go 1.180
use (
./apps
)
登录后复制

我有另一个go项目(单独的存储库)想要将此app子模块作为库导入,下面是go.mod:

module xxxx

go 1.18

require (
    github.com/zhaoyi0113/test-go-module v0.0.3 // indirect
)
登录后复制

然后我有以下代码:

package main

import (
    "github.com/zhaoyi0113/test-go-module/apps/logger"
)

func main() {
    logger.test()
}
登录后复制

编译失败,错误如下:

main.go:7:2: no required module provides package github.com/zhaoyi0113/test-go-module/apps/logger; to add it:
        go get github.com/zhaoyi0113/test-go-module/apps/logger
登录后复制

如何从多工作区项目导入子模块?

解决方法

您无法导入工作区。

目前的情况是这样的:

github.com/zhaoyi0113/test-go-module/apps 有一个模块 声明其模块路径为 github.com/zhaoyi0113/test-go-module。该模块不可用,因为该模块的实际路径与声明的路径不匹配(请注意其中一个路径中缺少 /apps)。

xxxx模块需要github.com/zhaoyi0113/test-go-module,但在该路径下没有找到模块。它位于 apps 子目录中,如上一段所述。

根据您想要放置模块的位置,有两种可能的修复方法。

如果你想将导入的 go.mod 保留在 当前目录中 然后更新模块路径以包含 apps:

导入模块的go.mod:

module github.com/zhaoyi0113/test-go-module/apps
go 1.19
登录后复制

用于导入模块的go.mod:

module xxxx
go 1.18
require (
    github.com/zhaoyi0113/test-go-module/apps v0.0.3 // indirect
)
登录后复制

第二个也是常规选项 就是将go.mod放在项目的根目录下,并将go.work文件放在项目之外。要实现此功能,请将 go.mod 移至项目的根目录(因为它在最初的提交中)并将 go.work 移到其他地方。不需要对导入模块进行任何更改。

以上就是如何将工作区作为依赖项导入到另一个 go 存储库中?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号