栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在另一个模块中使用“ GOPATH”之外的模块?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在另一个模块中使用“ GOPATH”之外的模块?

最简单,

database
可行的现成解决方案是将您的包/模块放入VCS(例如github.com),因此其他包(在其他模块内部)可以通过导入来简单地引用它:

import "github.com/someone/database"

如果这样做,您甚至不必

go.mod
手动摆弄文件,go工具将处理所有事情:它将自动识别并解决此依赖关系,下载并安装所需的软件包,并且还将
go.mod
自动更新。

完全保留在本地磁盘上

如果您不想使用VCS(例如,您只是在试验,或者尚未决定使用什么),那么仍然可以使用。该 如何
在官方详细的我能完全工作外VCS在我的本地文件系统中:转到维基?

因此,您在

database
之外创建了一个文件夹
GOPATH
,并在其中创建了一个模块。然后,您创建了另一个模块,我们称之为
main
,并且您想使用此
database
包。

您必须做的是:

  • go.mod
    您的
    main
    模块必须将
    database
    软件包列为“要求”。为您的
    database
    包裹指定一个临时的VCS名称:

    require (example.com/me/database v0.0.0

    )

  • 您必须告诉go工具此软件包的位置,因为我们使用的完整软件包名称只是一个临时名称/幻想名称。使用

    replace
    指令使该
    database
    程序包指向本地磁盘上的文件夹。您可以使用绝对路径和相对路径:

    replace example.com/me/database => ../database

就这样。

工作实例

让我们看一个可行的例子。让我们创建一个

pretty
模块。创建一个
pretty
包含2个文件的文件夹:

pretty.go:

package prettyimport "fmt"func Pretty(v ...interface{}) {    fmt.Println(v...)}

go.mod (可以通过运行来创建

go mod init pretty
):

module pretty

现在让我们创建另一个主模块。让我们在文件夹

osinf
旁边创建一个文件夹(可能是任何
pretty
文件夹)。其中2个文件:

osinf.go (注意,我们打算使用我们的

pretty
包/模块,我们通过导入
"example.com/me/pretty"
):

package mainimport "example.com/me/pretty"func main() {    pretty.Pretty("hi")    pretty.Pretty([]int{1, 3, 5})}

go.mod:

module mainrequire example.com/me/pretty v0.0.0replace example.com/me/pretty => ../pretty

就这样。

go run osinf.go
osinf
文件夹中运行,输出为:

hi[1 3 5]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号