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

主頁 > 知識庫 > GoPath模式和GoMoudle模式的相愛相殺

GoPath模式和GoMoudle模式的相愛相殺

熱門標簽:上海極信防封電銷卡價格 地圖標注免費定制店 重慶慶云企業400電話到哪申請 不封卡外呼系統 仙桃400電話辦理 寧波語音外呼系統公司 宿遷便宜外呼系統代理商 湛江crm外呼系統排名 鄭州智能語音電銷機器人價格

相信看我文章的文章的童鞋,golang版本已經是1.3版本以上。如果你的版本還停留在1.3以下,那這篇文章可以做為你的提升之法。

go moudle的前世今生

前世-gopath

gopath是什么

GOPATH 是什么,相信已經不用我再多說什么了。大家深受摧殘多年,應該已經有所體會。在v.1.11版本之前,安裝GO肯定要在環境變量中配置GoPath,我們可以簡單的將其理解成是工作目錄。目錄結構如下

-- bin 存放編譯后生成的二進制可執行文件

-- pkg 存放編譯后生成的 .a 文件

-- src 存放項目的源代碼,可以是你自己寫的代碼,也可以是你 go get 下載的包

將你的包或者別人的包全部放在 $GOPATH/src 目錄下進行管理的方式,我們稱之為 GOPATH 模式。

gopath有什么樣的問題?

版本管理問題

GOPATH 根本沒有版本的概念,如果你所應用的庫需要升級,那就是全局升級,所以涉及這個庫的服務在下一次編譯中都會使用新的庫,這是一件很危險的事情。版本管理非常重要,自己應該管理好自己的引用庫。

協同開發問題

當其他的開發者get到源碼進行修改的時候,你無法保證他下載的包是不是你所期望的版本,這及有可能導致服務出錯,且很難查找原因。

今生-GoMoudle

go modules 在 v1.11 版本正式推出,在發布的 v1.14 版本中,官方正式發話,稱其已經足夠成熟,可以應用于生產上。

從 v1.11 開始,go env 多了個環境變量: GO111MODULE ,這里的 111,其實就是 v1.11 的象征標志, go 里好像很喜歡這樣的命名方式,比如當初 vendor 出現的時候,也多了個 GO15VENDOREXPERIMENT環境變量,其中 15,表示的vendor 是在 v1.5 時才誕生的。

GO111MODULE 是一個開關,通過它可以開啟或關閉 go mod 模式。

它有三個可選值:offonauto,默認值是auto

  1. GO111MODULE=off禁用模塊支持,編譯時會從GOPATHvendor文件夾中查找包。
  2. GO111MODULE=on啟用模塊支持,編譯時會忽略GOPATHvendor文件夾,只根據 go.mod下載依賴。
  3. GO111MODULE=auto,當項目在$GOPATH/src外且項目根目錄有go.mod文件時,自動開啟模塊支持。

go mod 出現后, GOPATH(肯定沒人使用了) 和 GOVENDOR 將會且正在被逐步淘汰,但是若你的項目仍然要使用那些即將過時的包依賴管理方案,請注意將 GO111MODULE 置為 off。

具體怎么設置呢?可以使用 go env 的命令,如我要開啟 go mod ,就使用這條命令

go env -w GO111MODULE="on"

go mod 使用

go mod 不再依靠 $GOPATH,使得它可以脫離 GOPATH 來創建項目

你可以在你電腦的任意位置創建一個文件夾go_demo

使用 go mod 命令初始化,此時目錄下只有2個文件,go.mod是執行命令后生成的文件。

go mod init go_demo

文件main.go解釋:引入一個now的時間處理庫,輸出時間

package main

import (
	"fmt"

	"github.com/jinzhu/now"
)

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

go.mod內容

module go_demo

go 1.15

require github.com/jinzhu/now v1.1.1

內容解釋:

  • 第一行:模塊的引用路徑
  • 第二行:項目使用的 go 版本
  • 第三行:項目所需的直接依賴包及其版本

此時我們在命令行執行go build進行編譯,發現多了一個go.sum文件,那么這個文件又是什么?

go.sum 文件相比go.mod就比較復雜了。雖然內容多,但是也不難理解。

每一行都是由 模塊路徑模塊版本哈希檢驗值 組成,其中哈希檢驗值是用來保證當前緩存的模塊不會被篡改。hash 是以h1:開頭的字符串,表示生成checksum的算法是第一版的hash算法(sha256)。

go.mod 和 go.sum 是 go modules 版本管理的指導性文件,因此 go.mod 和 go.sum 文件都應該提交到你的 Git 倉庫中去,避免其他人使用你寫項目時,重新生成的go.mod 和 go.sum 與你開發的基準版本的不一致。

go mod的好處

相比gopath的方式,go mod的好處顯而易見。你不必為了版本依賴費勁頭腦,模塊化自動幫你做好了。這就有點C#中Nuget的味道,node的npm的感覺。開發者不應為了這種事情操心,而應該專注于編碼問題。

go mod 命令使用

常用

go mod init:初始化go mod, 生成go.mod文件,后可接參數指定 module 名,上面已經演示過。

go mod download:手動觸發下載依賴包到本地cache(默認為$GOPATH/pkg/mod目錄)

go list -m -json all:以 json 的方式打印依賴詳情

不常用

  • go mod graph: 打印項目的模塊依賴結構
  • go mod tidy :添加缺少的包,且刪除無用的包
  • go mod verify :校驗模塊是否被篡改過
  • go mod why: 查看為什么需要依賴
  • go mod vendor :導出項目所有依賴到vendor下
  • go mod edit :編輯go.mod文件

如何看待go moudle并應用于工作

go mode 方式肯定是推薦的一種方式,如果不是基于歷史項目-使用GOPATH,推薦盡快使用go mod方式,這能讓你省去很多糟心的事情。但是如果公司的項目還有不少就是基于gopath方式的,那你也不要著急,gopath的舊項目也是支持切換成go mod模式的,方式也很簡單,大家動動小手,一百度就可以。當然正式的切換肯定是需要領導同意的,畢竟工作系統隨意切換還是有風險的。

參考文章

一文搞懂 Go Modules

關于我

作者博客|文章首發

到此這篇關于GoPath模式和GoMoudle模式的相愛相殺的文章就介紹到這了,更多相關GoPath模式和GoMoudle模式內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序
  • go語言的工作空間和GOPATH環境變量介紹
  • 解決GOPATH在GOLAND中的坑
  • 解析GOROOT、GOPATH、Go-Modules-三者的關系
  • go設置多個GOPATH的方式

標簽:青海 電子產品 儋州 安康 海南 遼寧 西雙版納 物業服務

巨人網絡通訊聲明:本文標題《GoPath模式和GoMoudle模式的相愛相殺》,本文關鍵詞  GoPath,模式,和,GoMoudle,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《GoPath模式和GoMoudle模式的相愛相殺》相關的同類信息!
  • 本頁收集關于GoPath模式和GoMoudle模式的相愛相殺的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品久久久精品美女| 欧美精品色一区二区三区| 成人黄色小视频在线观看| 欧美日韩视频在线观看一区二区三区 | 一区二区日韩av| 51精品久久久久久久蜜臀| 激情综合一区二区三区| 韩国视频一区二区| 一本到不卡免费一区二区| 日日摸夜夜添夜夜添亚洲女人| 欧美一区二区三区视频| 欧美主播一区二区三区| 国产精品美女久久久久久久久久久| 亚洲人快播电影网| 麻豆一区二区在线| 国产欧美日韩综合精品一区二区| 成人网男人的天堂| 日韩一区二区三区观看| 九九国产精品视频| 久久久久九九视频| 欧美色精品在线视频| 色哟哟国产精品| 亚洲国产精品久久久久婷婷884| 国产一区91精品张津瑜| 亚洲欧美另类久久久精品| 精品少妇一区二区三区在线视频| 免费人成在线不卡| 日韩精品一区二区三区视频播放 | 色综合久久六月婷婷中文字幕| 欧美自拍偷拍一区| 激情欧美日韩一区二区| 国产清纯在线一区二区www| 成人做爰69片免费看网站| 国产精品免费久久| 欧美一区欧美二区| 99国产一区二区三精品乱码| 国产iv一区二区三区| 精品在线播放午夜| 国产黑丝在线一区二区三区| 首页国产欧美日韩丝袜| 亚洲欧美另类在线| 欧美大肚乱孕交hd孕妇| 色综合久久久久久久久| 日本韩国精品一区二区在线观看| 国产一区二区在线视频| 亚洲成人午夜影院| 日本一区二区三区电影| 国产精品久久久久久久久果冻传媒| 亚洲精品视频在线观看网站| 极品美女销魂一区二区三区| 久久久精品国产免大香伊| 麻豆中文一区二区| 精品1区2区在线观看| 成人手机电影网| 欧美xingq一区二区| 91伊人久久大香线蕉| 中文字幕日韩一区| 亚洲精品成人少妇| 一区二区三区久久| 一区二区三区精品视频在线| 欧美三级午夜理伦三级中视频| 亚洲美女视频在线| 日韩欧美国产不卡| 国产大陆亚洲精品国产| 日韩一区二区高清| 色88888久久久久久影院野外| 7777精品伊人久久久大香线蕉的 | 国产农村妇女精品| 欧美乱妇20p| 一本高清dvd不卡在线观看| 日韩欧美一区二区免费| 国产欧美日韩另类一区| 老司机免费视频一区二区| 亚洲精品你懂的| 精品久久久久av影院| 欧美精品视频www在线观看| 一区二区国产视频| 久久免费看少妇高潮| a4yy欧美一区二区三区| 福利一区福利二区| 日韩福利电影在线| 亚洲一区二区av电影| 在线看国产一区| 国产精品自在在线| 一区二区久久久| 亚洲高清免费观看高清完整版在线观看 | 欧美性色黄大片| 久久伊人蜜桃av一区二区| 亚洲欧洲日韩在线| 久久综合色8888| 亚洲综合色噜噜狠狠| 国产成人99久久亚洲综合精品| 轻轻草成人在线| 不卡欧美aaaaa| 一区二区三区在线观看欧美| 久久精品视频一区二区| 欧美婷婷六月丁香综合色| 成人av在线电影| 欧美色图12p| 国产精品久久久久aaaa| 日韩理论在线观看| 在线一区二区三区做爰视频网站| 久久疯狂做爰流白浆xx| 亚洲综合激情另类小说区| 亚洲免费看黄网站| 五月婷婷另类国产| 99久久99精品久久久久久 | 精品亚洲成a人在线观看| 91麻豆123| 欧美日韩国产综合草草| 一区二区在线免费| av资源网一区| 国产乱对白刺激视频不卡| 国产精品伦理在线| 国产成人精品www牛牛影视| 日韩精品最新网址| 制服丝袜亚洲色图| 午夜a成v人精品| 欧美裸体一区二区三区| 国产成人精品免费视频网站| 久久精品夜色噜噜亚洲a∨| 久久精品国产一区二区| 亚洲欧洲色图综合| 94-欧美-setu| 综合网在线视频| 高清shemale亚洲人妖| 樱花影视一区二区| 国产宾馆实践打屁股91| 欧美色爱综合网| 亚洲sss视频在线视频| 99久久久精品| 久久综合一区二区| www.久久久久久久久| 在线视频中文字幕一区二区| 国产色产综合产在线视频| 成人免费毛片高清视频| 欧美日韩一区中文字幕| 成人av在线资源网站| 99视频在线观看一区三区| 91久久精品一区二区二区| 欧美成人女星排名| 欧美日韩一区二区三区在线| 一本色道a无线码一区v| 日韩av不卡在线观看| 欧美性受xxxx| 欧美日韩中字一区| 精品国产区一区| 国产欧美一区二区三区在线看蜜臀| 在线观看免费视频综合| 色婷婷国产精品| 国产尤物一区二区| 欧美久久久久久久久中文字幕| 91小视频在线| 日本中文字幕一区二区有限公司| 亚洲一二三级电影| 热久久国产精品| 美女精品一区二区| 在线观看中文字幕不卡| 精品国产3级a| 国产成人精品影视| 精品国产乱码久久久久久久久 | 激情综合网av| 欧美tickling网站挠脚心| 香蕉加勒比综合久久| www.亚洲精品| 亚洲第一狼人社区| 久久久.com| 91理论电影在线观看| www.亚洲免费av| 色婷婷综合久久久久中文| 国产精品美女一区二区三区 | 蜜桃免费网站一区二区三区| av综合在线播放| 亚洲国产精品一区二区久久恐怖片 | 亚洲欧美中日韩| 偷窥国产亚洲免费视频| 国产欧美一区二区精品忘忧草| 国产精品素人视频| 国产精品乱子久久久久| 国产精品国产三级国产aⅴ入口| 91视视频在线观看入口直接观看www| 亚洲国产中文字幕| 日韩欧美的一区| 欧美日韩中文国产| 日本不卡一区二区| 欧美国产禁国产网站cc| 欧美日韩美女一区二区| 蜜桃av噜噜一区二区三区小说| 日韩一区二区免费在线观看| 亚洲国产三级在线| 日本美女视频一区二区| 欧美videos中文字幕| 美国十次了思思久久精品导航| 婷婷成人综合网| 日韩一二三四区| 成人精品一区二区三区四区| 欧美午夜片在线看| 色先锋资源久久综合| 欧美一区二区三区视频在线| 午夜电影网一区|