go module 本地引用與引用遠(yuǎn)程gogs自建項(xiàng)目

【原文】(http://alblue.cn/articles/2020/05/13/1589382112325.html

如果自建的工具包需要被自己的其他項(xiàng)目引用应媚,有兩種方案

本地方案

優(yōu)勢:不需要配置代理、本地修改,其他項(xiàng)目同步實(shí)時(shí)更新津辩。
缺點(diǎn):無法協(xié)同,管理麻煩拯辙、引用子包麻煩丰涉。

配置步驟

使用go mod replace關(guān)鍵字
當(dāng)前目錄如下

$ls
kit myapp
$tree 
gobak/
├── kit
│   └── limiter
└── myapp

假設(shè)myapp項(xiàng)目需要引用kit項(xiàng)目,可以在myapp的go.mod文件寫

replace git.xxx/kit => ../kit

然后在kit項(xiàng)目下面執(zhí)行

go mod init kit

在myapp項(xiàng)目中引用kit包的地方

import "git.xxx/kit"

fun test(){
   kit.Do()
}

引用kit項(xiàng)目下的limiter

需要在limiter下面再生成一個(gè)mod

go mod init limiter

然后在myapp中先修改go.mod文件

replace git.xxx/kit/limiter => ../kit/limiter

使用

import "git.xxx/kit/limiter"

fun test(){
   limiter.Do()
}

遠(yuǎn)程引用gogs自建項(xiàng)目

優(yōu)勢:協(xié)作方便,半自動(dòng)拉取最新代碼涎永。
缺點(diǎn):協(xié)作的同事都需要進(jìn)行如下的配置思币。

  1. gogs倉庫必須是https
  2. 修改 go env
  3. 修改.gitconfig
  4. 修改項(xiàng)目引用

怎么配置https,自行百度羡微。跳過

修改 go env

vi .bash_profile
增加如下兩行
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE="*.xx.cn"

xx.cn 自行替換成自建gogs的域名地址谷饿,比如你gogs的域名是 git.test.cn,那就是 *.test.cn

第二個(gè)GOPROXY必須增加direct,才能引用私有倉庫

修改.gitconfig

增加如下配置


[url "git@test.cn:"]
        insteadOf = https://git.test.cn/
  • git@必須拷淘,test.cn根據(jù)自身域名來
  • https://git.test.cn/ 這個(gè)你可以隨便寫各墨。但是項(xiàng)目里面引用必須和這個(gè)一樣。
    比如這里你寫成https://git.test123.cn/ 那么等會(huì)引用項(xiàng)目启涯,必須是
    import git.test123.cn/gogs/kit

修改項(xiàng)目引用

首先將kit項(xiàng)目推送到gogs倉庫贬堵,假設(shè)地址是 git.test.cn/my/kit
修改kit 項(xiàng)目的module命名
之前本地的go.mod是

module kit

現(xiàn)在需要改為

module git.test.cn/my/kit.git

注意下結(jié)尾的 .git要加上

引用

在myapp項(xiàng)目修改go.mod
之前本地引用為

module myapp

replace git.xxx/kit/limiter => ../kit/limiter
replace git.xxx/kit => ../kit

現(xiàn)在改為

module myapp
require git.test.cn/my/kit.git latest

注意下latest也可以修改為commit logid。用latest默認(rèn)拉取master分支的最新代碼结洼。

$ go mod tidy

執(zhí)行后會(huì)自動(dòng)將latest修改為master的最新commit logid黎做。

module myapp
require git.test.cn/my/kit.git v0.0.0-20200513142954-7c63b23dda7c

項(xiàng)目使用

import git.test.cn/my/kit.git

func do(){
    kit.Do()
}

更新kit包

如果要更新kit包的代碼,需要將myapp的go.mod配置文件后面的版本號(hào)刪除松忍,改為latest,再執(zhí)行
go mod tidy

引用limiter

直接引用即可

import git.test.cn/my/kit.git/limiter

func do(){
    limiter.Do()
}

Jenkins配置環(huán)境

首先需要切換到Jenkins用戶蒸殿,為Jenkins生成一個(gè)ssh秘鑰

su jenkins 
ssh-keygen -t rsa

然后將公鑰配置到gogs的個(gè)人設(shè)置中,這樣Jenkins在拉取項(xiàng)目的包 時(shí)就有權(quán)限了鸣峭。

在Jenkins的Shell中執(zhí)行


export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE="*.test.cn"

DIR=$GOROOT/src/xx
mkdir -p $DIR
rm -rf $DIR/*
cp -rf $WORKSPACE/* $DIR/


cd $DIR
go build -o xxx
chmod 755 xx
mv -f ./xxx
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宏所,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子摊溶,更是在濱河造成了極大的恐慌爬骤,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莫换,死亡現(xiàn)場離奇詭異霞玄,居然都是意外死亡骤铃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門坷剧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惰爬,“玉大人,你說我怎么就攤上這事惫企∷呵疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵狞尔,是天一觀的道長风范。 經(jīng)常有香客問我,道長沪么,這世上最難降的妖魔是什么硼婿? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮禽车,結(jié)果婚禮上寇漫,老公的妹妹穿的比我還像新娘。我一直安慰自己殉摔,他們只是感情好州胳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逸月,像睡著了一般栓撞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碗硬,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天瓤湘,我揣著相機(jī)與錄音,去河邊找鬼恩尾。 笑死弛说,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翰意。 我是一名探鬼主播木人,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冀偶!你這毒婦竟也來了醒第?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤进鸠,失蹤者是張志新(化名)和其女友劉穎稠曼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堤如,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒲列,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搀罢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝗岖。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榔至,靈堂內(nèi)的尸體忽然破棺而出抵赢,到底是詐尸還是另有隱情,我是刑警寧澤唧取,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布铅鲤,位于F島的核電站,受9級(jí)特大地震影響枫弟,放射性物質(zhì)發(fā)生泄漏邢享。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一淡诗、第九天 我趴在偏房一處隱蔽的房頂上張望骇塘。 院中可真熱鬧,春花似錦韩容、人聲如沸款违。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽插爹。三九已至,卻和暖如春请梢,著一層夾襖步出監(jiān)牢的瞬間赠尾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工毅弧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萍虽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓形真,卻偏偏與公主長得像杉编,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子咆霜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355