網頁

2021/5/16

Golang go.mod檔是什麼

Go 的go.mod檔作用如下。

go.mod是用來定義module的文件。Go module的根目錄中會有一個go.mod檔,其為一個UTF-8編碼的文字檔,用來標明此module的module path、使用的go版本及管理module的依賴。

專案的go.mod類似Java Maven的pom.xml或Gradle的build.gradle;Node.js npm或Yarn的package.json,是管理依賴module的配置文件。


下面是一個簡單的go.mod檔。

go.mod

module abc.com/my/util

go 1.16

require abc.com/other/util v1.0.2
require abc.com/new/tool v2.3.4

go.mod的第一行為module path代表module的全名,用以區分其他的module,並作為其他module依賴時的名稱,例如上面的module path為abc.com/my/util

第三行的go 1.16為module使用的go版本。

require開頭的敘述則代表此module所依賴的module資訊。例如上面依賴了兩個module分別為abc.com/other/util v1.0.2abc.com/new/tool v2.3.4

相同的開頭關鍵字可以拉出以block的方式撰寫如下。

go.mod

module abc.com/my/util

go 1.16

require {
    abc.com/other/util v1.0.2
    abc.com/new/tool v2.3.4
}

go.mod不用手動新增,只要在Go命令列執行go mod init [module-path]即可在執行目錄生成go.mod檔。[module-path]為module全名,例如上面的abc.com/my/util

$ go mod init abc.com/my/util
go: creating new go.mod: module abc.com/my/util

module的程式中有用到外部依賴的module並執行某些go命令時會自動修改go.mod的內容。例如go get會更新go.mod中依賴的module版本。go mod tidy會加入程式中丟失的依賴module或刪除不需要的module。


沒有留言:

張貼留言