go項目管理 GOPATH與go mod


$GOPATH

  • 允許設置多個路徑
  • GOPATYH目錄結構
    goWorkSpapce //GOPATH目錄
    -- bin //編譯可執行文件存放的路徑,可自動生成
    -- pkg ///.a中間文件存放路徑,可自動生成
    -- src //源碼路徑

GO get

  • 1.從遠程下載需要的包 2.執行go install

GO install

  • 編譯生成可執行文件,放在GOBIN路徑下,GOBIN默認是在GOPATH/bin文件夾下

  • 如果不用額外方式改變環境變量(公司目前用的是sh腳本編譯),是編譯不過的。報錯:can’t load package: package .: no buildable Go source files in ***

編譯問題

  • 問題:多個project會導致多個GOPATH目錄,而go優先使用第一個GOPATH目錄,會導致編譯沖突
  • 解決方法
    • 使用如下目錄:多個project或工具組件都放在GOPATH的src下

    • 此時GOBIN可以為空

    • GOPATH目錄和GOPATH下的src不應該添加到源代碼管理中,而是各個project目錄myApp1、myApp2、myApp3各自時獨立的進行源代碼管理

    • goWorkSpace     // goWorkSpace為GOPATH目錄
        -- bin
           -- myApp1  // 編譯生成
           -- myApp2  // 編譯生成
           -- myApp3  // 編譯生成
        -- pkg
        -- src
           -- common 1
           -- common 2
           -- common utils ...
           -- myApp1     // project1
              -- models
              -- controllers
              -- others
              -- main.go 
           -- myApp2     // project2
              -- models
              -- controllers
              -- others
              -- main.go 
           -- myApp3     // project3
              -- models
              -- controllers
              -- others
              -- main.go 
      

go mod包管理

  • 優勢:不受GOPATH的限制,可以在任意的文件夾下創建工程
  • 例子:在GoLand中使用go mod模式創建工程,會自動生成go.mod文件,然后就可以正產編譯包了

命令行使用方式

  • 設置變量GO111MODULE為on

  • go mod init + projectname:初始化mod

  • go.mod稱為模塊根,定義了它所在目錄為一個模塊

  • 使用go build main.go編譯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM