ホームページ > バックエンド開発 > Golang > 最上位の `cmd` フォルダーを使用せずに複数の Go パッケージ バイナリを同時にビルドするにはどうすればよいですか?

最上位の `cmd` フォルダーを使用せずに複数の Go パッケージ バイナリを同時にビルドするにはどうすればよいですか?

DDD
リリース: 2024-11-02 22:49:29
オリジナル
714 人が閲覧しました

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

複数の Go パッケージ バイナリを同時にビルドする

質問は、トップレベルのパッケージを使用するというデフォルトのアドバイスとして、複数のパッケージ バイナリを同時にビルドすることを中心に展開しています。 cmdフォルダーが機能していないようです。提供されているコード例は、特定のバイナリを正しくビルドできる特定のフォルダー構造を示しています。

go build コマンドを使用してすべてのバイナリを 1 ステップでビルドするには、次のバリエーションをお勧めします:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート