Bagaimana untuk Membina Perduaan Pakej Berbilang Go Secara Serentak Tanpa Folder `cmd` Tahap Atas?

DDD
Lepaskan: 2024-11-02 22:49:29
asal
687 orang telah melayarinya

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

Membina Perduaan Pakej Berbilang Go Secara Serentak

Persoalannya berkisar tentang membina berbilang binari pakej serentak, sebagai nasihat lalai menggunakan peringkat atasan folder cmd nampaknya tidak berfungsi. Contoh kod yang disediakan menunjukkan struktur folder tertentu yang membolehkan membina binari tertentu dengan betul.

Untuk membina semua binari dalam satu langkah menggunakan arahan go build, variasi yang berikut disyorkan:

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

Arahan ini berulang melalui pakej dalam direktori src/cmd dan membina setiap pakej secara individu. Perduaan yang terhasil akan disimpan dalam direktori pakej masing-masing.

Sebagai alternatif, jika anda tidak mahu memasang binari ke dalam $GOPATH/bin, skrip boleh digunakan. Ini adalah amalan biasa dalam projek sumber terbuka, di mana skrip binaan mengendalikan berbilang pengeluaran binari.

Skrip contoh berikut boleh digunakan:

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

Skrip ini berulang melalui pakej dalam cmd direktori dan larian pergi membina pada setiap. Hasilnya ialah satu set binari yang disimpan dalam direktori pakej cmd masing-masing.

Untuk rujukan lanjut, projek popular berikut menyediakan contoh skrip binaan:

  • Grafana: https:// github.com/grafana/grafana/blob/master/build.go
  • Torus: https://github.com/coreos/torus/blob/master/Makefile
  • Caddy: https: //github.com/mholt/caddy/blob/master/dist/automate.go

Atas ialah kandungan terperinci Bagaimana untuk Membina Perduaan Pakej Berbilang Go Secara Serentak Tanpa Folder `cmd` Tahap Atas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan