登录
首页 >  Golang >  Go问答

导入已经在公共仓库中的本地包

来源:Golang技术栈

时间:2023-04-27 07:36:20 243浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《导入已经在公共仓库中的本地包》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到golang等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在努力在 Go 中构建一个 Web 框架。我在本地拥有代码,并希望在另一个模块中使用该存储库来测试一切是否正常,而无需创建标签和/或将内容推送到远程存储库。我已经关注了如何做到这一点的官方文档,以及其他地方的一些帖子。但是似乎没有任何效果。我做错了什么?

本地包住在这里:

../goworkspace/src/github.com/garrettlove8/goserve

从其他模块导入:

...
import (
    "fmt"
    "io"
    "net/http"

    "github.com/garrettlove8/goserve" // I have tried "goserve" and "../goserve"
)
...

去.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

正确答案

当您想使用本地模块而不是远程模块时,可以使用[replace 指令](https://golang.org/ref/mod#go-mod-file- replace)来实现。

在您的情况下,将其添加到您的go.mod文件中:

replace github.com/garrettlove8/goserve => ../goworkspace/src/github.com/garrettlove8/goserve

今天关于《导入已经在公共仓库中的本地包》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>