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
模組1:
module github.com/username/module1 require ( github.com/username/module2 v0.0.1 )
模組2:
module github.com/username/module2 go 1.13
package main import ( "fmt" "github.com/username/module2" ) func main() { fmt.Println(module2.Name()) }
package module2 import "fmt" func Name() string { return "Module 2" }
依照以下步驟,您可以引用非 GOPATH 目錄中的模組,從而實現 Go 專案中程式碼的複用和模組化。
以上是如何從 GOPATH 外部引用 Go 模組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!