首页 >后端开发 >Golang >如何在修改后的 Go 项目结构中跨不同目录访问模块?

如何在修改后的 Go 项目结构中跨不同目录访问模块?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-26 03:58:15941浏览

How to Access Modules Across Different Directories in a Revised Go Project Structure?

访问修订后的 Golang 项目结构中的模块

自 Go 版本 1.11 以来,模块管理发生了重大变化。要了解如何在新项目结构中引用不同目录中的模块,让我们检查一下您的文件夹设置:

\root\module1
\root\module2

每个目录都包含一个 go.mod 文件,您可以在根目录。但是,要从 module1 访问 module2,请按照以下步骤操作:

旧方式

在传统方法中,模块必须放置在 GOPATH 环境变量中才能访问。 GOPATH 文件夹通常具有以下结构:

$GOPATH
├── bin
├── pkg
└── src
   ├── github.com
   └── other_imported_modules

您可以使用 import 语句从 module1 中的 module2 导入名为 datastructurals.go 的数据结构文件:

import (
    "github.ibm.com/Alessio-Savi/GoLog-Viewer/datastructure"
)

新方式

模块管理的现代方法涉及使用 go mod init命令:

go mod init github.com/username/modulename

这会生成 go.mod 和 go.sum 文件。 go.mod 文件包含依赖项,而 go.sum 存储它们的哈希值。例如, module2 的 go.mod 文件可能如下所示:

module github.com/username/module2

go 1.13

require (
    github.com/alessiosavi/ahocorasick v0.0.3
)

现在,您可以在 module1 中导入 module2:

import (
    "github.com/username/module2"
)

此方法允许您访问模块,而无需必须发布它们或将它们放在 GOPATH 中。

以上是如何在修改后的 Go 项目结构中跨不同目录访问模块?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn