我正致力于在Go中建立一个网络框架。我有本地代码,并希望在另一个模块中使用该回购来测试一切是否正常,而不必创建标记和/或将事情推送到远程repos。我已经跟踪了关于如何做到这一点的官方文档,以及其他一些帖子。然而,似乎什么都起不到作用。我做错什么了?
包裹住在当地:
../goworkspace/src/github.com/garrettlove8/goserve
从其他模块导入:
...
import (
"fmt"
"io"
"net/http"
"github.com/garrettlove8/goserve" // I have tried "goserve" and "../goserve"
)
...
go.mod:
...
require github.com/garrettlove8/goserve v0.1.17
不管我做什么,它似乎不像我所希望的那样起作用
更新
代码和错误组合:
// main.go
import (
"fmt"
"io"
"net/http"
"goserve"
)
运行go mod tidy
// go.mod becomes
require github.com/garrettlove8/goserve v0.1.17 // indirect
错误:
goserve: package goserve is not in GOROOT (/usr/local/go/src/goserve)
手动更改go mod到此(我不需要这样做):
require github.com/garrettlove8/goserve
运行go mod tidy
错误:
usage: require module/path v1.2.3
发布于 2020-10-10 22:37:09
当您想要使用本地模块而不是远程模块时,可以使用替换指令来实现这一点。
在您的示例中,将其添加到go.mod
文件中:
replace github.com/garrettlove8/goserve => ../goworkspace/src/github.com/garrettlove8/goserve
https://stackoverflow.com/questions/64295033
复制相似问题