首页 > 后端开发 > Golang > 如何从 GOPATH 外部引用 Go 模块?

如何从 GOPATH 外部引用 Go 模块?

Linda Hamilton
发布: 2024-11-27 20:27:15
原创
597 人浏览过

How Do I Reference Go Modules from Outside the GOPATH?

从非 GOPATH 目录引用模块

Go 1.11 中引入的 Go 模块引入了从非 GOPATH 目录引用模块和包的变化。

旧方式

传统上,Go 模块需要驻留在 GOPATH 中。可以使用以下语法导入此目录中的模块和包:

import (
    "github.com/username/modulename/subpackage"
)
登录后复制

新方式

使用 Go 模块,这种方法已经改变。包现在可以驻留在 GOPATH 之外。要从另一个目录引用包:

初始化模块

使用 go mod init 命令初始化新模块:

go mod init github.com/username/modulename
登录后复制

这会创建 go.mod 和 go当前目录中的 .sum 文件。

导入语句

使用 import引用其他目录中的包的语句。例如,如果 Module2 位于 /root/module2,并且包含名为 module2 的包,则 Module1 中的 import 语句将为:

import (
    "github.com/username/module2"
)
登录后复制

文件结构

假设以下文件结构:

\root
└── module1
    ├── go.mod
    └── main.go

└── module2
    ├── go.mod
    └── module2.go
登录后复制

go.mod文件

模块1:

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)
登录后复制

模块2:

module github.com/username/module2

go 1.13
登录后复制

main.go(模块1)

package main

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

func main() {
    fmt.Println(module2.Name())
}
登录后复制

module2.go (Module2)

package module2

import "fmt"

func Name() string {
    return "Module 2"
}
登录后复制

按照以下步骤,您可以引用非 GOPATH 目录中的模块,从而实现 Go 项目中代码的复用和模块化。

以上是如何从 GOPATH 外部引用 Go 模块?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板