婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 解析GOROOT、GOPATH、Go-Modules-三者的關系

解析GOROOT、GOPATH、Go-Modules-三者的關系

熱門標簽:烏魯木齊人工電銷機器人系統 賺地圖標注的錢犯法嗎 澳門防封電銷卡 福州鐵通自動外呼系統 濮陽自動外呼系統代理 廣東語音外呼系統供應商 地圖標注測試 長沙ai機器人電銷 智能電銷機器人營銷

一、GOROOT介紹

在安裝完Golang語言的時候,所謂的安裝路徑其實就是你的GOROOT路徑,也就是說GOROOT存放的Golang語言內建的程式庫的所在位置,而通常你安裝完后,你電腦的環境變數就會設好GOROOT路徑,當你開發Golang程式的時候,當你import內建的程式庫的時候,并不需要額外安裝,而當程式運行后,預設也會先去GOROOT路徑下尋找相對應的程式庫來運行。

1、查看Glang環境變量

go env

env中有些是我已經修改過的,通常如果你是初次安裝Golang語言并且沒做什么環境變數設定的話,GOROOT設定路徑就是你當初安裝Golang語言的路徑,而GOPATH通常預設會是使用者目錄下的go資料夾。

2、使用 go run 執行某個文件

package main

import (
	"fmt"
)

func main() {
	fmt.Println("hello world")
}

然后再執行以下指令:

go run main.go

就會成功輸出hello worldgo run其實會幫你將程式碼進行編譯并產生執行檔,而編譯檔跟執行檔事實上是存在一個暫存資料夾里面,當運行完此程式就會自動刪除。該指令可以想成類似直譯的方式運行,而不需要做其他任何環境設定,即可運行。

3、引用第三方套件

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()
	router.Run()
}

import了一個github.com/gin-gonic/gin套件,這個是別人開發的Web Framework套件,是不存在于官方程式庫的,而是放在GitHub上的第三方套件。

  • 當執行Golang程式碼,當需要存取套件時,會先去GOROOT路徑下的src資料夾找同等于我們在程式碼中import的路徑下去找有沒有gin這個資料夾,而這資料夾里面就是包含了所有有關于該套件的程式庫。
  • 如果在GOROOT路徑下沒有找到,則會往GOPATH路徑下的src資料夾找同等于我們在程式碼中import的路徑下去找有沒有gin這個資料夾。

所以只要GOROOTGOPATH路徑下都沒有找到該套件的話,就無法執行該程式碼。

二、GOPATH介紹

根據上面GOROOT的介紹,我們可以知道官方的程式庫所在位置就是在GOROOT里面,而GOPATH就是專門存放第三方套件以供我們程式碼的需要。那通常開發Golang的話,通常會在重新設定GOPATH的位置。

1、GOPATH目錄

bin
pkg
src

依照Golang語言的慣例(強制),GOPATH是指src路徑的上一層,我們要在GOPATH路徑下主動新增src資料夾,所謂src就是代表source code的意思,也就是放我們開發Golang程式碼的相關專案的原始碼。

2、GOPATH的缺點

第三方套件只要不是官方程式庫,都需要放置在GOPATH/src的路徑下才可以使用。

go get最常用在當我們想用別人公開在GitHub上的套件,可以幫我們從網路上clone到GOPATH/src里面。雖然這樣很方便,但是你會發現GOPATH/src下的程式碼會很復雜,除了有你自己開發的專案資料夾,也包含其他第三方程式庫的專案資料夾。

再來,如果你開發的專案采用第三方套件是不同版本怎么辦?以往的解決方法是要設定多組不同的GOPATH。雖然社群也有開發相對應的package manager,如VendorDep來解決該問題,但畢竟不是官方主導的。

三、Go Modules的誕生

為了解決不被GOPATH的問題,因此官方在1.11開始推出了Go Modules的功能。Go Modules解決方式很像是Java看到Maven的做法,將第三方程式庫儲存在本地的空間,并且給程式去引用。

1、設定GO111MODULE環境變數

總共可以三種不同的值:

  • auto

默認值,go命令會根據當前目錄來決定是否啟用modules功能。需要滿足兩種情形:
該專案目錄不在GOPATH/src/
當前或上一層目錄存在go.mod檔案

  • on

go命令會使用modules,而不會GOPATH目錄下查找。

  • off

go命令將不會支持module功能,尋找套件如以前GOPATH的做法去尋找。

我是建議要開發Go專案就不再使用GOPATH的功能了,而是采用Go Modules的做法,因此建議都設定為on。
而采用Go Modules,下載下來的第三方套件都在哪呢?其實就位在GOPATH/pkg/mod資料夾里面。

2、初始化mod

go mod init module name>

module name>可填可不填,不填的話預設就是采用專案資料夾的名稱。

在此檔案內可以寫以下幾個關鍵字:

  • module

定義模組路徑

  • go

定義go語言version

  • require

指定依賴的套件,預設是最新版,可以指定版本號

  • exclude

排除該套件和其版本

  • replace

使用不同的套件版本并替換原有的套件版本注解
// 單行注解
/* 多行注解*/
indirect 代表被間接導入的依賴包

假設現在我要引入GitHub上的gin-gonic/gin的套件,如下定義:

module awesomeProject

go 1.13

require github.com/gin-gonic/gin v1.6.3

再執行以下指令:

go mod download

會將需要的套件安裝在GOPATH/pkg/mod資料夾里面。而且會發現出現一個go.sum的檔案,這個檔案基本上用來記錄套件版本的關系,確保是正確的,是不太需要理會的。

官方說明:除了go.mod之外,go命令還維護一個名為go.sum的文件,其中包含特定模塊版本內容的預期加密哈希
go命令使用go.sum文件確保這些模塊的未來下載檢索與第一次下載相同的位,以確保項目所依賴的模塊不會出現意外更改,無論是出于惡意、意外還是其他原因。 go.mod和go.sum都應檢入版本控制。
go.sum 不需要手工維護,所以可以不用太關注。

如果將gin版本改成v1.4.0再重新執行go mod download,就會發現在GOPATH/pkg/mod里面gin-gonic會有兩個資料夾分別是gin@v1.4.0gin@v1.5.0,借此來區分版本。

當然其實也可以不執行go mod download,而直接運行go build or go install 也會自動將套件安裝在相對應的地方。

還有一種方式直接下載套件而不用在go.mod中定義:

go get github.com/gin-gonic/gin@v1.5.0

只要有開啟go modules功能,go get 就不會像以前一樣在GOPATH/src下放置套件檔案,而是會放在GOPATH/pkg/mod里面,并且go.mod會寫好引入,這樣也就不用使用go mod download指令了。

到此這篇關于解析GOROOT、GOPATH、Go-Modules-三者的關系的文章就介紹到這了,更多相關GOROOT GOPATH Go-Modules內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Golang 1.16 中 Modules的主要變化更新
  • 解決goland 導入項目后import里的包報紅問題
  • Go 自定義package包設置與導入操作
  • goland 設置project gopath的操作
  • 解決Goland 同一個package中函數互相調用的問題
  • 淺談golang package中init方法的多處定義及運行順序問題
  • Goland使用Go Modules創建/管理項目的操作

標簽:太原 調研邀請 貴陽 廣西 慶陽 阿克蘇 西雙版納 德州

巨人網絡通訊聲明:本文標題《解析GOROOT、GOPATH、Go-Modules-三者的關系》,本文關鍵詞  解析,GOROOT,GOPATH,Go-Modules-,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解析GOROOT、GOPATH、Go-Modules-三者的關系》相關的同類信息!
  • 本頁收集關于解析GOROOT、GOPATH、Go-Modules-三者的關系的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品男人天堂av| 首页亚洲欧美制服丝腿| 一级女性全黄久久生活片免费| 亚洲女爱视频在线| 国产美女主播视频一区| 欧美日韩精品免费| 中文字幕一区二区三区在线观看| 亚洲视频1区2区| 视频一区欧美精品| 久久er精品视频| 欧美综合在线视频| 久久久午夜精品理论片中文字幕| 亚洲已满18点击进入久久| 成人污污视频在线观看| 麻豆国产一区二区| 欧美日韩一区二区三区免费看| 国产精品色呦呦| 国产福利91精品一区| 日韩精品中文字幕在线不卡尤物| 亚洲色图色小说| 亚洲大尺度视频在线观看| 色婷婷狠狠综合| 亚洲乱码一区二区三区在线观看| 国产精品美女久久久久aⅴ| 国产精品77777| 国产精品午夜春色av| 成人少妇影院yyyy| 一区二区三区在线影院| 在线视频一区二区三区| 亚洲免费在线电影| 国产一区二区三区| 久久精品亚洲乱码伦伦中文| 中文字幕制服丝袜一区二区三区| 视频在线观看91| 日韩女优毛片在线| 久久精品99国产精品| 久久亚洲一区二区三区明星换脸| 精品一区二区三区久久| 国产清纯白嫩初高生在线观看91| 国产在线一区二区综合免费视频| 精品国产91乱码一区二区三区 | 色拍拍在线精品视频8848| 精品中文av资源站在线观看| 国产一区二区美女| 国产麻豆精品视频| 亚洲最大成人综合| 精品视频资源站| 99精品欧美一区| 成人一级片网址| 亚洲成人1区2区| 欧美在线观看视频一区二区 | 欧美成人福利视频| 91视频91自| 色婷婷一区二区三区四区| av成人老司机| 色综合久久久久久久久| 91香蕉视频黄| 色婷婷国产精品综合在线观看| 国产盗摄女厕一区二区三区| 狠狠色丁香婷婷综合久久片| 国产精品中文欧美| 黄色成人免费在线| 4438x亚洲最大成人网| 久久视频一区二区| 欧美成人精品福利| 一区二区免费看| 国产精品亚洲第一| 亚洲男人的天堂网| 欧美性大战久久久久久久蜜臀| 国产精品一区二区三区网站| 亚洲一卡二卡三卡四卡无卡久久| 不卡电影免费在线播放一区| 欧美日韩国产成人在线91| 国产在线不卡视频| 香蕉乱码成人久久天堂爱免费| 日韩欧美高清在线| 在线观看亚洲一区| 亚洲精品一区二区三区香蕉| 777精品伊人久久久久大香线蕉| jlzzjlzz欧美大全| 国产在线精品视频| 正在播放一区二区| 麻豆精品国产传媒mv男同| 欧美极品美女视频| 国产精品久久久久久久久快鸭 | 成人妖精视频yjsp地址| 亚洲综合丁香婷婷六月香| 欧美精品日韩一本| 国产91丝袜在线观看| 亚洲天堂精品视频| 国产精品福利一区| 精品国产伦一区二区三区免费| 国产91富婆露脸刺激对白| 香蕉影视欧美成人| 久久中文字幕电影| 91蜜桃免费观看视频| 欧美无砖专区一中文字| 国产精品国产三级国产a| 91一区二区三区在线播放| 国产91清纯白嫩初高中在线观看| 欧美xxx久久| 精品99999| 国产另类ts人妖一区二区| 欧美激情一区在线| 欧美精品aⅴ在线视频| 国产精品欧美一级免费| 国产亚洲综合av| 免费视频最近日韩| 亚洲精品第一国产综合野| 国产精品国产三级国产有无不卡| 亚洲精品免费看| 日韩一级免费一区| 色综合天天做天天爱| 3751色影院一区二区三区| 日韩一区精品视频| 日韩欧美精品在线| 国产网站一区二区三区| 激情都市一区二区| 九九久久精品视频| 男女激情视频一区| 国产91色综合久久免费分享| 国产激情视频一区二区三区欧美 | 麻豆精品国产91久久久久久 | 国产激情精品久久久第一区二区| 国产精品一区二区久激情瑜伽| 成人毛片视频在线观看| 日本一区二区三区在线观看| 老鸭窝一区二区久久精品| 国产在线看一区| 亚洲日本中文字幕区| 久久久久久久久久看片| 国产精品综合二区| 国产在线国偷精品产拍免费yy| 国产一区二区三区四| 色成人在线视频| 国产99久久久久久免费看农村| 欧美日韩精品一区二区三区| 国产拍欧美日韩视频二区| 亚洲综合自拍偷拍| 亚洲免费看黄网站| 国产成人精品网址| 亚洲影视资源网| 加勒比av一区二区| 91片在线免费观看| 激情六月婷婷综合| 欧美区在线观看| 一区二区三区.www| 麻豆freexxxx性91精品| 老司机精品视频一区二区三区| 不卡一区在线观看| 久久蜜桃av一区二区天堂| av午夜一区麻豆| 欧美性色黄大片| 欧美午夜精品一区二区蜜桃| 中文字幕精品一区二区精品绿巨人| 中文字幕一区在线观看| 日本中文在线一区| 色天使色偷偷av一区二区| 欧美一级午夜免费电影| 国产成人av网站| 久久综合久久综合久久| 欧美日韩国产首页在线观看| 国产自产高清不卡| 日本成人在线一区| 国产99久久久精品| 91免费看`日韩一区二区| 精品成人在线观看| 亚洲免费大片在线观看| 99这里只有久久精品视频| 亚洲欧洲精品一区二区三区不卡| 欧美tickling网站挠脚心| 国产精品美女久久久久av爽李琼| 亚洲一级片在线观看| 国产自产2019最新不卡| 综合电影一区二区三区| 精品久久久久久综合日本欧美| 成人午夜私人影院| 日韩欧美电影一二三| 国产麻豆日韩欧美久久| 成人av在线观| xfplay精品久久| 国产片一区二区三区| 欧美一级日韩免费不卡| 99在线精品视频| 秋霞影院一区二区| 欧美国产精品中文字幕| 美女在线一区二区| 中文字幕中文在线不卡住| 日韩一区二区三区高清免费看看| 在线免费观看不卡av| 午夜视频在线观看一区二区三区| 欧洲色大大久久| 中文字幕一区在线观看| 精品午夜久久福利影院| 97精品久久久久中文字幕| 老司机午夜精品99久久| 欧美性猛片aaaaaaa做受| 一区二区三区精品久久久| 日本中文字幕一区| jlzzjlzz亚洲日本少妇|