簡體   English   中英

如果 `go.mod` 中的版本低於實際版本,`go build` 是否會失敗?

[英]Should `go build` fail if version in `go.mod` is lower than actual?

我在go.mod文件中指定了go 1.15

當前的編譯器版本如下:

➜ go version
go version go1.14.4 linux/amd64

然而, go build仍然成功地構建了一個二進制文件。

這是預期的行為嗎? 不確定我可以在模塊描述中找到解釋。

是的,這是預期的行為。

go.mod 更多的是用於依賴關系和 package 管理的工具,而不是用於管理構建過程的 output 的工具。 這就是為什么,如果您不使用 1.15 中的任何功能,它仍然應該能夠被構建。

有趣的是,如果您嘗試將項目設置為高於您正在使用的版本(即使用 go 工具 1.14 構建的 1.15)並且您在go.mod中標記它需要使用更高版本,它將顯示在構建過程中:

# temp/test-go-build
./main.go:10:15: o.Redacted undefined (type url.URL has no field or method Redacted)
note: module requires Go 1.15

因此,go 工具會盡力滿足您的需求,但不會阻止您到達 go(明白嗎?)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM