最初から移動します-パッケージとモジュールの操作


モジュールの移動


モジュールには2つの興味深いユースケースがあります.

  • モジュールを消費すると、OOFコアモジュールと外部サードパーティモジュール
  • を組み合わせて使用することが多いでしょう

  • モジュールを作成する場合、いくつかのケースで、あなたまたは他の誰かが使用できるコードを作成します.このシナリオでは、モジュールを作成し、Githubにアップロードできます.
  • 内部ファイルを消費する


    あなたは多くの異なるファイルであなたのアプリケーションを分割することがあります.以下のファイルを持っています
    /app
      main.go
      /helper
        helper.go 
    

  • モジュールを作成します.
    go mod init
    

  • ヘルパーディレクトリとヘルパーを作成します.ファイルに移動し、次の内容を指定します
    // helper.go
    
    package helper
    
    import "fmt"
    
    func Help() {
     fmt.Println("This is a helper function")
    }
    
  • メインを作成します.ファイルに移動し、次の内容を指定します
  •    package main
    
       import (
         "log-tester/helper"
    
         "github.com/softchris/logger"
       )
    
       func main() {
         logger.Log("hey there")
         helper.Help()
       }
    
    "log-tester/helper"に注意してください、それはhelperパッケージが範囲にあることを確実とします.
  • コンパイルと実行
  •    go run main.go
    

    外部モジュールを消費する


    外部モジュールを消費するには、

  • インポートは、これはimport命令を使用して完全にモジュールの場所にアドレスを修飾することが含まれます.

  • コードで使用すると、
  • を使用することを意味するモジュールからコードを呼び出します

  • それがダウンロードされることを確実にするので、あなたのコードは走らせることができます.
  • プロジェクトの作成


    新しいプロジェクトを作ろう

  • ランgo mod init :
    go mod init hello
    
    どう行くか.modは以下の内容で作成されました.
    module hello
    
    go 1.16
    
  • 外部libへの参照を追加する


    次に、外部ライブラリを使用するコードを作成します.

  • ファイルを作成します.試み
    package main
    
    import (
      "fmt"
      "github.com/softchris/math"
    )
    

  • 同じファイルに、main()関数を追加し、パッケージから外部関数を使用します.
    func main() {
      sum += math.Add(1,2)
      fmt.Println(sum)
    }
    
  • リブを取得する


    さて、外部ライブラリを解決する必要があります.

  • ランgo mod tidy :
    go mod tidy
    
    どうぞ.modが更新されました
    require github.com/softchris/math v0.2.0
    
    また行きます.sum file以下の内容を指定します.
    github.com/softchris/math v0.2.0 h1:88L6PLRBGygS3LY5KGIJhyw9IZturmd2ksU+p13OPa4=
    
    github.com/softchris/math v0.2.0/go.mod h1:v8WzhjKC+ipuH+i9IZ0Ta2IArniTP53gc5TgCINCqAo=
    
    これは、GOモジュールに参照することによって、アプリケーションを構築する方法を追跡する試みの方法です.
  • go run
  •    go run main.go
    
       3
    

    モジュールを作る


    共有するためのモジュールをビルドすると、いくつかのgotchasがあります.
  • あなたはパッケージ
  • を作成する必要があります
  • あなたのパッケージはメイン
  • と呼ばれません
  • あなたのコード
  • の公的で個人的な部分の概念が、あります
  • ローカルでテストできません
  • ワイド配布
  • のGithubにパッケージをアップロードします

    モジュールのコードを作成する


    より広い使用を意味するMoodleを作成するには、まずモジュールを初期化する必要があります.
  • 新しいパッケージのディレクトリロガーを作成します.
  •    mkdir logger
       cd logger   
    
  • は、例えばgo mod init <address at github>を実行します.
  •    go mod init github.com/softchris/logger
    
    これは、GOを作成します.あなたのディレクトリのmodファイル.
       logger/
         go.mod
    
    ファイルは以下のようになります:
       module github.com/softchris/logger
    
       go 1.16
    
    パッケージ名とgoのバージョンが含まれます.
  • たとえばログをホストするファイルを作成します.以下の内容を与えてください.
  •     package logger
    
        import (
         "fmt"
        )
    
        var Version string = "1.0"
    
        func Log(mess string) {
         fmt.Println("[LOG] " + mess)
        }
    
    package logger号の代わりにmain号である.
  • 大文字変数とメソッドは、公に利用できます.小文字と名付けられたものはパッケージに対してプライベートになります.
  • ローカルテスト


    パッケージをローカルでテストできます.そのためには、パッケージをインポートできる別のパッケージが必要です.
  • ディレクトリを移動します.
  •    cd ..
    
  • 新しいディレクトリロガーテストを作成します.
  •    mkdir logger-test
       cd logger-test
    
  • パッケージを作成します.
  •    go mod init logger-test
    
  • ファイルを作成します.次のコードを追加します
  •     package main
    
        import "github.com/softchris/logger"
    
        func main() {
         logger.Log("hey there")
        }
    
    この時点で、あなたは“Logger”パッケージを消費していますが、Githubを指しており、パッケージはまだそこに住んでいません.しかし、あなたのマシンのローカルアドレスを再指定できます.
  • オープンゴー.以下に追加します.
  •    require github.com/softchris/logger v0.0.0
    
       replace github.com/softchris/logger => ../logger
    
    つのことがここで起こっています.

  • 「ロガー」パッケージを求めています.
      require github.com/softchris/logger v0.0.0
    

  • あなたはgithubの代わりにあなたのローカルシステムを指すようにしています
      replace github.com/softchris/logger => ../logger
    

  • パッケージをgo runで実行します.
    go run main.go
    
    次のようになります.
    [LOG] hey there
    
  • パッケージを発行する


    パッケージを公開するには、Githubに置いてください.
  • GIT Repoをgit initで作成します.
  •    git init
    
  • Githubでレポを作成します.

  • 少なくとも1つのコミットを行います.
    git add .
    git commit -m "first commit"
    
  • あなたのパッケージをGithubにアップロードします.
  •    git remote add origin https://github.com/softchris/logger.git
    
       git branch -M main
       git push -u origin main
    
  • あなたのパッケージにgit tagを入力します.
  •    git tag v0.1.0
       git push origin v0.1.0
    
    今すぐあなたのパッケージは、タグ0.1.0を持って

    テストする

  • プロジェクト「ロガーテスト」に移動します.
  •    cd ..
       cd logger-test
    
  • オープン・ゴー.modとこれらの行を削除します.
  •    require github.com/softchris/logger v0.1.0
       replace github.com/softchris/logger => ../logger
    
  • go mod tidyを実行します、これはパッケージを探すために行きます:
  • どうぞ.modは以下を含みます:
       require github.com/softchris/logger v0.1.0
    
    また、あなたの行く.SUMは以下のように設定します:
       github.com/softchris/logger v0.1.0 h1:Kqw7t9C3Y7BtHDLTx/KXEqHy5x8EJxrLian742S0di0=
    
       github.com/softchris/logger v0.1.0/go.mod h1:rrzWjMsM3tqjetDBDyezI8mFCjGucF/b5RSAqptKF/M=
    
  • プログラムをgo runで実行します.
  •    go run main.go
    
    次のようになります.
       [LOG] hey there
    

    概要


    すごい、あなたはローカルでモジュールを作成することができました.