golang をパッケージ化する方法

リリース: 2020-01-13 10:33:28
オリジナル
5478 人が閲覧しました

golang をパッケージ化する方法

Golang のパッケージ化方法:

1. パッケージ化には go-bindata を使用します:

go-bindata は非常に簡単です。デザインコンセプトも分かりにくいものではありません。そのタスクは、静的ファイルを Go 言語のソース コードにカプセル化し、統一されたインターフェイスを提供することです。このインターフェイスを通じてファイル パスを渡すと、対応するパスのファイル データが返されます。

簡単に言えば、静的ファイルから .go ファイルを生成し、バイナリ ファイルにコンパイルできるようにすることができます。プロジェクトが開始されると、.go ファイルは静的ファイルにリリースされます。

使用例:

静的ディレクトリ全体をパッケージ化し、使用時に解放する

# 目录结构
ConfigTest
├── asset
│   └── asset.go 静态文件编译之后的go文件
├── config # 静态文件目录
│   ├── rule.yaml
│   └── rule.json
├── cli # 运行目录
│   ├── config 执行main释放出来的静态文件
│   │   ├── rule.yaml
│   │   └── rule.json
│   └── main # main.go编译之后生成的二进制执行文件
└── main 程序目录
    └── main.go # 源码
ログイン後にコピー

コマンドを実行して静的ファイルを go ファイルにパッケージ化する

go-bindata -o=./asset/asset.go -pkg=asset config/...

-o # 指定打包后生成的go文件路径
-pkg # 指定go文件的包名
config/... # 指定需要打包的静态文件路径
ログイン後にコピー

2. go.rice を使用してパッケージ化する

go.rice は静的ファイルを go ファイルにパッケージ化することもサポートしていますが、その動作は go-bindata とは大きく異なります。使用法の観点から見ると、go.rice は実際にはより便利な静的ファイル操作ライブラリです。静的ファイルのパッケージ化は付随的な機能です。

インストール

go get github.com/GeertJohan/go.rice/...
ログイン後にコピー

使用

go.rice ディレクトリをrice.Box操作

import (
    "fmt"
    "html/template"

    "github.com/GeertJohan/go.rice"
)

func main() {
    // 这里写相对于的执行文件的地址
    box, err := rice.FindBox("theme/default")
    if err != nil {
        println(err.Error())
        return
    }
    // 从目录 Box 读取文件
    str, err := box.String("post.html")
    if err != nil {
        println(err.Error())
        return
    }
    t, err := template.New("tpl").Parse(str)
    fmt.Println(t, err)
}
ログイン後にコピー

コマンド

go.お米の包装コマンドはriceです。使い方は非常に簡単です。go.rice オペレーションがある go code ディレクトリで、rice embed-go:

rice embed-go
rice -i "github.com/fuxiaohei/xyz" embed-go // -i 处理指定包里的 go.rice 操作
ログイン後にコピー

を直接実行します。golang の詳細については、golang チュートリアルを参照してください。 PHP 中国語 Web サイトの 列。

以上がgolang をパッケージ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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