ホームページ >バックエンド開発 >Golang >同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを編成するにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 14:26:11138ブラウズ

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

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

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

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

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

例:

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

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

import "../library/myproject"

このアプローチでは、ライブラリと CLI を明確に分離しながら、両方を同じ内に常駐させることができます。

追加メモ

  • パッケージをネストされた構造に移動しても、どちらのパッケージの機能にも影響しません。
  • go run および go build コマンドを使用して、プロジェクトをテストしてビルドします。
  • go build file.go と go の違いの詳細については、提供されたリンクを参照してください。ビルドします。

以上が同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを編成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。