[英]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.