go mod配置項(xiàng)目模塊自引用

以前也寫過Go項(xiàng)目肠鲫,感覺最不爽的就是項(xiàng)目要依賴GOPATH,特別是從github clone的項(xiàng)目榜轿,有的時(shí)候還需要改其import路徑才能跑起來幽歼,真的是很不爽。

使用go mod 管理項(xiàng)目谬盐,就不需要非得把項(xiàng)目放到GOPATH指定目錄下甸私,你可以在你磁盤的任何位置新建一個(gè)項(xiàng)目,import可以做到相對獨(dú)立飞傀,如果github上的項(xiàng)目也是用go mod來管理建立的皇型,那么clone到本地可以做到不用改任何東西來運(yùn)行項(xiàng)目。

go mod可以通過require來引用項(xiàng)目以來的其他模塊助析,類似如下格式

module GoRoomDemo
 
go 1.12
 
require (
  github.com/gin-gonic/gin v1.3.0
  github.com/golang/protobuf v1.3.1 // indirect
  github.com/gomodule/redigo v2.0.0+incompatible
)

使用中發(fā)現(xiàn)犀被,也可以配置go mod項(xiàng)目自引用,如下是我創(chuàng)建的項(xiàng)目的結(jié)構(gòu)目錄:


image.png

工程項(xiàng)目暫時(shí)包含兩個(gè)package:fetch和fetchers外冀,在fetchers中引用了fetch包中的數(shù)據(jù)結(jié)構(gòu),如下是使用相對路徑import的

package fetchers

import "../fetch"

goland ide并沒有報(bào)錯(cuò)掀泳,然鵝build報(bào)錯(cuò)了......

$ go build
build market-data-fetcher: cannot find module for path _/Users/liuyihao/Documents/GitHub/market-data-fetcher/fetch

仔細(xì)一想雪隧,使用../這種相對路徑來import也不優(yōu)雅,于是尋找其他方案员舵。發(fā)現(xiàn)go mod可以引用模塊自己脑沿。如下是go.mod配置文件:

module market-data-fetcher

go 1.12

require github.com/liuhaoeee/market-data-fetcher v0.0.0-00010101000000-000000000000

哈哈,你可能在疑惑v0.0.0-00010101000000-000000000000這個(gè)版本號(hào)是怎么來的马僻,默認(rèn)寫latest就行庄拇,go build會(huì)自動(dòng)修正為這個(gè)長串版本號(hào)。

但是到這個(gè)步驟還是會(huì)有問題,因?yàn)間o.mod雖然引用了自己措近,但是實(shí)際上是通過將遠(yuǎn)程git目錄下載到本地來import引用的溶弟,所以如果本地添加了新的package而沒有push到遠(yuǎn)程目錄,引用也是無效的瞭郑。而且還有個(gè)問題就是你修改了某個(gè)包的內(nèi)容辜御,想要引用就必須先push到遠(yuǎn)程git,然后更新才可以屈张,會(huì)給調(diào)試帶來巨大的不便擒权。如下圖,本地雖然引用了遠(yuǎn)程的自己阁谆,但是遠(yuǎn)程目錄還沒有push相關(guān)的package碳抄。


image.png

解決方案就是使用go mod的replace指令來使項(xiàng)目引用本地真正的自己,即不是遠(yuǎn)程git也不是本地下載的遠(yuǎn)程git鏡像场绿。

module market-data-fetcher

go 1.12

require github.com/liuhaoeee/market-data-fetcher v0.0.0-20190727134117-607096f6195c

# 這里是重點(diǎn)纳鼎,即項(xiàng)目中"github.com/liuhaoeee/market-data-fetcher"相關(guān)引用路徑會(huì)替換成項(xiàng)目根路徑
replace github.com/liuhaoeee/market-data-fetcher => ./

然后就可以正常import了:

package fetchers

import "github.com/liuhaoeee/market-data-fetcher/fetch"

這個(gè)時(shí)候你可能還會(huì)發(fā)現(xiàn),項(xiàng)目可以正常build裳凸,但是goland ide里確還會(huì)報(bào)錯(cuò)


image.png

這是因?yàn)槟愕膅oland還沒有配置打開使用go mod包管理器贱鄙,導(dǎo)致goland不能使用go.mod配置文件。打開就好了


image.png

至此就可以盡情的寫代碼了姨谷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗宁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子梦湘,更是在濱河造成了極大的恐慌瞎颗,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捌议,死亡現(xiàn)場離奇詭異哼拔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瓣颅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門倦逐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宫补,你說我怎么就攤上這事檬姥。” “怎么了粉怕?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵健民,是天一觀的道長。 經(jīng)常有香客問我贫贝,道長秉犹,這世上最難降的妖魔是什么蛉谜? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮崇堵,結(jié)果婚禮上型诚,老公的妹妹穿的比我還像新娘。我一直安慰自己筑辨,他們只是感情好俺驶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棍辕,像睡著了一般暮现。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上楚昭,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天栖袋,我揣著相機(jī)與錄音,去河邊找鬼抚太。 笑死塘幅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尿贫。 我是一名探鬼主播电媳,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼庆亡!你這毒婦竟也來了匾乓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤又谋,失蹤者是張志新(化名)和其女友劉穎拼缝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彰亥,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咧七,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了任斋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片继阻。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仁卷,靈堂內(nèi)的尸體忽然破棺而出穴翩,到底是詐尸還是另有隱情,我是刑警寧澤锦积,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站歉嗓,受9級(jí)特大地震影響丰介,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一哮幢、第九天 我趴在偏房一處隱蔽的房頂上張望带膀。 院中可真熱鬧,春花似錦橙垢、人聲如沸垛叨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗽元。三九已至,卻和暖如春喂击,著一層夾襖步出監(jiān)牢的瞬間剂癌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工翰绊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佩谷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓监嗜,卻偏偏與公主長得像谐檀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子裁奇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容