首頁  >  文章  >  後端開發  >  如何在沒有頂級“cmd”資料夾的情況下同時建置多個 Go 包二進位檔案?

如何在沒有頂級“cmd”資料夾的情況下同時建置多個 Go 包二進位檔案?

DDD
DDD原創
2024-11-02 22:49:29638瀏覽

How to Build Multiple Go Package Binaries Simultaneously Without a Top-Level `cmd` Folder?

同時建立多個Go 套件二進位檔案

問題圍繞同時建立多個套件二進位文件,作為使用頂級的預設建議cmd 檔案夾似乎不起作用。提供的程式碼範例顯示了一種特定的資料夾結構,可以正確建構特定的二進位檔案。

要使用 go build 命令一步構建所有二進位文件,建議使用以下變體:

cd $GOPATH/someProject
for CMD in `ls src/cmd`; do
  go build ./src/cmd/"$CMD"
done

此命令迭代 src/cmd 目錄中的包並單獨構建每個包。產生的二進位檔案將儲存在各自的包目錄中。

或者,如果您不希望將二進位檔案安裝到 $GOPATH/bin 中,可以使用腳本。這是開源專案中的常見做法,其中建置腳本處理多個二進位生成。

可以使用以下範例腳本:

cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done

此腳本迭代 cmd 中的套件目錄並在每個目錄上執行 go build。結果是一組儲存在各自 cmd 套件目錄中的二進位。

為了進一步參考,以下熱門項目提供了構建腳本的範例:

  • Grafana:https:// github.com/grafana/grafana/blob/master/build.go
  • 圓環:https://github.com/coreos/torus/blob/master/Makefile
  • 球童:https: //github.com/mholt/caddy/blob/master /dist/automate.go

以上是如何在沒有頂級“cmd”資料夾的情況下同時建置多個 Go 包二進位檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn