Heim  >  Artikel  >  Backend-Entwicklung  >  So verpacken Sie Golang

So verpacken Sie Golang

尚
Original
2020-01-13 10:33:285401Durchsuche

So verpacken Sie Golang

Golang-Verpackungsmethode:

1. Verwenden Sie go-bindata zum Verpacken:

go-bindata ist sehr einfach. Auch das Designkonzept ist nicht schwer zu verstehen. Seine Aufgabe besteht darin, statische Dateien in einem Go-Sprachquellcode zu kapseln und dann eine einheitliche Schnittstelle bereitzustellen. Sie übergeben den Dateipfad über diese Schnittstelle und erhalten die Dateidaten des entsprechenden Pfads zurück.

Um es einfach auszudrücken: Es kann .go-Dateien aus unseren statischen Dateien generieren, sodass diese in Binärdateien kompiliert werden können. Wenn das Projekt gestartet wird, werden die .go-Dateien in statische Dateien freigegeben.

Verwendungsbeispiel:

Packen Sie das gesamte statische Verzeichnis und geben Sie es bei Verwendung frei

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

Führen Sie den Befehl aus, um die statischen Dateien in Go-Dateien zu packen

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

-o # 指定打包后生成的go文件路径
-pkg # 指定go文件的包名
config/... # 指定需要打包的静态文件路径

2. Verwenden Sie go.rice zum Packen

go.rice unterstützt auch das Packen statischer Dateien in Go-Dateien, das Verhalten unterscheidet sich jedoch stark von go-bindata. Aus Nutzungssicht ist go.rice tatsächlich eine praktischere Bibliothek für statische Dateioperationen. Das Packen statischer Dateien ist eine Nebenfunktion.

Installieren Sie

go get github.com/GeertJohan/go.rice/...

Verwenden Sie

go.rice. Behandeln Sie ein Verzeichnis als Rice.Box-Operation

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)
}

Befehl

go Verpackungsbefehl für Reis ist Reis. Die Verwendung ist sehr einfach: Führen Sie im Go-Codeverzeichnis, in dem sich eine go.rice-Operation befindet, direkt rice embed-go aus:

rice embed-go
rice -i "github.com/fuxiaohei/xyz" embed-go // -i 处理指定包里的 go.rice 操作

Für weitere Golang-Kenntnisse beachten Sie bitte das Golang-Tutorial -Spalte auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonSo verpacken Sie Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn