網(wǎng)站首頁 編程語言 正文
最近開始使用Go/GoLand 在import 自定義包時出現(xiàn)各種狀況,措手不及,大概在網(wǎng)上找了解決方法,幾乎沒說的清楚的(可能是我個人理解力比較差哈哈)
個人喜好加上網(wǎng)上其他人給的解決方法實在是那個啥,所以 圖文方式解決問題 才能事半功倍。
windows環(huán)境下裝的Goland,Mac及其他linux系統(tǒng)參考,了解到本質(zhì)后 萬變不離其宗。
方案一:使用GOROOT和GOPATH
(以我本機(jī)為準(zhǔn)舉例講講各種方法)
- GOROOT:就是Go的安裝目錄(C:\Go),(類似于java的JDK),里面有bin目錄(C:\Go\bin)
- GOPATH: 是我們的工作空間,保存go項目代碼和第三方依賴包 (F:\Go)
- GOPATH可以設(shè)置多個,其中,第一個將會是默認(rèn)的包目錄,使用go get下載的包都會在第一個path中的src目錄???? 下,使用go install時,在哪個GOPATH中找到了這個包,就會在哪個GOPATH下的bin目錄生成可執(zhí)行文件
?使用GOPATH時,Go會在以下為目錄中搜索包:
- GOROOT/src:Go標(biāo)準(zhǔn)庫
- GOPATH/src:應(yīng)用自身代碼和第三方依賴的代碼
該方法對目錄架構(gòu)要求比較嚴(yán)格 例如我的 F:\Go\src\awesomeProject1, 即必須創(chuàng)建在 GOPATH/src
注意說明:sum1包內(nèi)的函數(shù)要大寫,這種方式是嚴(yán)格按照 GOROOT和GOPATH的方式,例如main包import? "awesomeProject1/sum1"
包就會在? $GOPATH/src(Go/src/awesomeProject1/sum1)路徑下找到。
方案二:使用go.mod????
通常大家不喜歡將代碼放在 $GOPATH/src 下面,此時import pkg 時,就要用到go.mod
?從Go1.11版本之后,已經(jīng)不再推薦使用GOPATH來構(gòu)建應(yīng)用了。也就是說GOPATH被認(rèn)為時廢棄的垃圾的做法。
當(dāng)你開啟了GO111MODULE=on,仍然使用GOPATH模式的方法,在引入自定義模塊時會報錯。
用Go modules創(chuàng)建出來的工程中會包含一個go.mod的文件,工程的位置/路徑隨便
?1. 設(shè)置環(huán)境變量???? go env -w GO111MODULE=on??????
2. ? 打上這個小 對勾。
3. 執(zhí)行 go mod init <module name> 。? <module name>非必填,不填的話就會采用項目文件的名稱。
原文鏈接:https://blog.csdn.net/u012919476/article/details/110942353
相關(guān)推薦
- 2022-12-06 react?fiber執(zhí)行原理示例解析_React
- 2022-12-13 詳解如何魔改Retrofit實例_Android
- 2022-11-04 使用EF?Code?First搭建簡易ASP.NET?MVC網(wǎng)站并允許數(shù)據(jù)庫遷移_實用技巧
- 2022-09-30 關(guān)于react中useCallback的用法_React
- 2022-11-08 uni-app 使用escook/request-miniprogram插件發(fā)請求
- 2024-03-28 SpringBoot項目中的500錯誤
- 2022-07-15 Python中列表索引?A[?:?2?]與A[?:?,?2]的區(qū)別說明_python
- 2021-12-11 C語言SetConsoleCursorPosition函數(shù)使用方法_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支