「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを編成するにはどうすればよいですか?

同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを編成するにはどうすればよいですか?

2024 年 12 月 23 日に公開
ブラウズ:871

How Can I Organize a Go Project with Both a Library and a CLI in the Same Directory?

マルチパッケージ プロジェクトでコードを整理する

ライブラリとコマンドライン インターフェイス (CLI) の両方を必要とする Go プロジェクトでは、次の問題がよく発生します。同じディレクトリに複数のパッケージがあること。

そのようなプロジェクト構造の 1 つ:

whatever.io/
    myproject/
        main.go
        myproject.go

パッケージ main と func main は Go で実行を開始するために不可欠ですが、ライブラリにはパッケージ myproject などの別のパッケージが必要です。ただし、このプロジェクトをインポートするときに、Go コンパイラーは object:

main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject

解決策: ネストされたパッケージ

この問題を解決するには、両方のパッケージを同じディレクトリ内の新しいフォルダー内に配置します。メイン.ゴー。 $GOPATH から新しいパッケージを参照するように import ステートメントを忘れずに更新してください。

例:

whatever.io/
    myproject/
        library/
            myproject.go
        main.go

main.go で、次のようにライブラリ パッケージをインポートします。

import "../library/myproject"

このアプローチにより、ライブラリ パッケージ間の明確な分離が保証されます。

追加メモ

  • ネスト構造へのパッケージの移動どちらのパッケージの機能にも影響しません。
  • go run コマンドと go build コマンドを使用して、プロジェクトのテストとビルドを行うことができます。
  • go の違いの詳細については、提供されているリンクを参照してください。 build file.go と go build.
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3