我陷入了以下挑战:
在开发代码时,我还想并行开发一个依赖项(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 指令,本地签出存储库的这种开发应该是可能的。如果有人能对此有所了解,我会很高兴。谢谢!
智慧大石
相关分类