Go module 本地導包方式

遠方有你,伴餘生發表於2020-10-28

tip本文只講關於Go module 本地導包方式,其他請自行查閱

Go module 導包方式,go mod init project-name,會得到一個go.mod檔案,此檔案是管理依賴的,通常會從github或其他代理拉取程式碼庫。

module package-name

go 1.xx //go version

require(
     github.com/repo1/package1 v0.0.0 // 遠端程式碼庫url + 版本號 嚴格規範 vx.x.x

)

replace (
      //一般替換被牆的url
      newUrl => oldUrl
      //也可以本地導包時使用
      package-name => 本地包的絕對路徑或相對路徑 
      //goland下本地導包直接配置此項,在Synchronous dependency,go.mod會自動生成一個url+版本+雜湊,然後正常跑代      
      //碼。 go run 或者 go build 也可以 go mod vendor 將依賴放到一個可管理的 '專案/vendor' 資料夾

)

goland下本地導包直接配置replace,不要配置require(遠端拉取除外),在智慧提示點選Synchronous dependency,go.mod會同步依賴並自動生成一個url+版本+雜湊,然後正常跑程式碼。 go run 或者 go build 也可以 go mod vendor 將依賴放到一個可管理的 '專案/vendor' 資料夾

如果go.mod本地導包出現xxx@v0.0.0: malformed module path "xxx": missing dot in first path element,檢視go.mod是否在require配置了xxx路徑,刪掉,然後go run 自動生成一個url就不會報錯了。

相關文章