3 回答

TA貢獻1951條經(jīng)驗 獲得超3個贊
依賴模塊不需要有顯式的 go.mod
文件。
模塊模式下的“主模塊”(即包含命令工作目錄的模塊)必須具有一個文件,以便該命令可以找出該模塊中包的導(dǎo)入路徑(基于其模塊路徑),并且一旦解析,它就有一個記錄其依賴項的位置。go
go.mod
go
此外,使用 replace
指令插入的任何模塊都必須具有文件(以減少由于替換路徑中的拼寫錯誤或其他錯誤而導(dǎo)致的混淆)。go.mod
但是,通常缺少顯式文件的模塊是有效且可以使用的。它的有效模塊路徑是它被d的路徑,如果同一個存儲庫最終通過多個路徑使用,這可能會有點混亂。由于沒有文件的模塊必然不會指定自己的依賴項,因此該模塊的使用者必須自己填寫這些依賴項(go mod tidy
會將它們標(biāo)記為在使用者文件中)。go.mod
require
go.mod
// indirect
go.mod

TA貢獻1890條經(jīng)驗 獲得超9個贊
討論的簡短摘要:
答案是否定的!
此項目包含一組 go 包,但它不是 Go 模塊,因為它不包含文件(盡管以前它曾經(jīng)是多模塊存儲庫 (Go)。go.mod
go get
可以以兩種方式運行:模塊感知模式和傳統(tǒng) GOPATH 模式(從 Go 1.16 開始)。
要了解有關(guān)此內(nèi)容的更多信息,請使用以下命令參考文檔:go
$ go help gopath-get
和
$ go help module-get
它會講述在這兩種情況下是如何工作的。go get
另外,我注意到它可以下載任何存儲庫,并將其視為Go包,即使它包含任意Python項目也是如此。
我做了一個簡單的測試來證明這一點:
$ go get github.com/mongoengine/mongoengine
它出人意料地奏效了。

TA貢獻1811條經(jīng)驗 獲得超6個贊
模塊由其 go.mod 文件定義。沒有 go.mod 文件,它就不是一個模塊。
從 Go 模塊參考中查看此內(nèi)容
模塊是一起發(fā)布、版本控制和分發(fā)的包的集合。模塊可以直接從版本控制存儲庫或模塊代理服務(wù)器下載。
模塊由模塊路徑標(biāo)識,該路徑在 go.mod 文件中聲明,以及有關(guān)模塊依賴項的信息。模塊根目錄是包含 go.mod 文件的目錄。
和
模塊由其根目錄中名為 go.mod 的 UTF-8 編碼文本文件定義。
- 3 回答
- 0 關(guān)注
- 430 瀏覽
添加回答
舉報