[英]In vscode-go, is there a way to run the local version of a tool for go:generate statements?
在許多項目中,我有一個tools/tools.go
文件,它允許我擁有我使用的工具的本地版本( 參考)。
我的代碼中還有go:generate
語句,以使用https://github.com/golang/mock/mockgen自動生成模擬文件。 我的項目的bin
文件夾下有一個本地版本的mockgen
,我可以通過運行類似PATH=./bin:${PATH} go generate./...
的東西來生成我項目的所有模擬。
vscode-go 識別代碼中的go:generate
statements 並可以為我們生成代碼。
我想知道是否有辦法讓 vscode-go 使用我在bin
目錄下的本地版本運行mockgen
(通過gopls.generate
)。
通過設置go.alternateTools
,vscode-go 讓我們為擴展使用的工具(即dlv
)指定備用路徑。 我試圖為mockgen
配置該選項,但它沒有改變任何東西。 我的猜測是它不起作用,因為 vscode-go 通過gopls.generate
mockgen
它不直接運行mockgen
。 但這只是一個猜測。
如果我的$PATH
中沒有mockgen
二進制文件,以下是我得到的錯誤:
[Info - 5:44:18 PM] 2021/08/08 17:44:18 xxxxxxx.go:19: running "mockgen": exec: "mockgen": executable file not found in $PATH
operation="generate"
有人有什么主意嗎?
編輯:請參閱@Zyl的評論以獲得一個非常好的選擇。
我今天遇到了同樣的問題。 找到了這個解決方案,如果將來有人需要這個解決方案,它對我有用:
export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"
然后運行(在帶有“go:generate”注釋的文件所在的目錄中)
go generate
go 安裝 github.com/golang/mock/mockgen@v1.6.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.