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.2
及abc.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。
沒有留言:
張貼留言