«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать несколько двоичных файлов пакета Go одновременно без папки cmd верхнего уровня?

Как создать несколько двоичных файлов пакета Go одновременно без папки cmd верхнего уровня?

Опубликовано 11 ноября 2024 г.
Просматривать:910

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
  • Torus: https://github.com/coreos/torus/blob/master/Makefile
  • Caddy: https: //github.com/mholt/caddy/blob/master/dist/automate.go
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3