为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用本地 git 签出作为更改跟踪的 go 依赖项

如何使用本地 git 签出作为更改跟踪的 go 依赖项

Go
Smart猫小萌 2022-09-19 20:46:36
我陷入了以下挑战:在开发代码时,我还想并行开发一个依赖项(micromdm/scep),并使用git跟踪更改。我的代码导入库,如下所示:import(    ...    sscepclient "github.com/micromdm/scep/v2/client"    "github.com/micromdm/scep/v2/cryptoutil/x509util"    "github.com/micromdm/scep/v2/scep")为了指向模块的本地压缩版本,我替换了我的go.mod中的模块:require (...github.com/micromdm/scep/v2 v2.0.0)replace github.com/micromdm/scep/v2 => /home/pi/go/scep我确实在scep模块的存储库上做了一个git克隆,并且可以在用replace指令指定的目录中找到文件。但是当我尝试运行我的代码时,我收到一个错误../../scep/server/csrsigner.go:8:2: no required module provides package github.com/micromdm/scep/v2/scep; to add it:        go get github.com/micromdm/scep/v2/scep如果我确实按照要求获取依赖项,则会收到错误消息go get: module github.com/micromdm/scep/v2@upgrade found (v2.0.0, replaced by /home/pi/go/scep), but does not contain package github.com/micromdm/scep/v2/scep我还尝试在依赖模块的 go.mod 本身中添加 replace 语句,因为该模块还具有几个指向 scep 模块的 require 语句,但没有成功。据我所知,GO无法找到模块(显然),但说实话,依赖关系的处理确实让我感到困惑。根据我在互联网上的发现,我了解到通过使用 replace 指令,本地签出存储库的这种开发应该是可能的。如果有人能对此有所了解,我会很高兴。谢谢!
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

  1. 检查是否已定义模块版本 (v2)

    module github.com/micromdm/scep/v2 @ /home/pi/go/scep/go.mod

  2. 将模块的路径更改为相对路径,在这种情况下,它的工作原理

更新1:我看到你做了,但这是我脑海中唯一的选择。

更新2:找到了一个小的解决方案。


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号