golang打包的方法:
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的鶴慶網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!1、使用go-bindata進行打包:
go-bindata 很簡單,設計理念也不難理解。它的任務就是講靜態(tài)文件封裝在一個 Go 語言的 Source Code 里面,然后提供一個統(tǒng)一的接口,你通過這個接口傳入文件路徑,它將給你返回對應路徑的文件數(shù)據(jù)。
簡單來說就是它可以把我們的靜態(tài)文件生成 .go 文件,這樣就可以編譯成二進制文件,項目啟動的時候再把這個 .go 文件再釋放成靜態(tài)文件。
使用示例:
打包整個靜態(tài)目錄,使用的時候釋放
# 目錄結構 ConfigTest ├── asset │ └── asset.go 靜態(tài)文件編譯之后的go文件 ├── config # 靜態(tài)文件目錄 │ ├── rule.yaml │ └── rule.json ├── cli # 運行目錄 │ ├── config 執(zhí)行main釋放出來的靜態(tài)文件 │ │ ├── rule.yaml │ │ └── rule.json │ └── main # main.go編譯之后生成的二進制執(zhí)行文件 └── main 程序目錄 └── main.go # 源碼
執(zhí)行命令將靜態(tài)文件打包成go文件
go-bindata -o=./asset/asset.go -pkg=asset config/... -o # 指定打包后生成的go文件路徑 -pkg # 指定go文件的包名 config/... # 指定需要打包的靜態(tài)文件路徑
2、使用go.rice打包
go.rice 也支持打包靜態(tài)文件到 go 文件中,但是行為和 go-bindata 很不相同。從使用角度,go.rice 其實是更便捷的靜態(tài)文件操作庫。打包靜態(tài)文件反而是順帶的功能。
安裝
go get github.com/GeertJohan/go.rice/...
使用
go.rice 把一個目錄認為是一個 rice.Box 操作
import ( "fmt" "html/template" "github.com/GeertJohan/go.rice" ) func main() { // 這里寫相對于的執(zhí)行文件的地址 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 的打包命令是 rice。用起來非常直接:在有使用 go.rice 操作的 go 代碼目錄,直接執(zhí)行 rice embed-go:
rice embed-go rice -i "github.com/fuxiaohei/xyz" embed-go // -i 處理指定包里的 go.rice 操作
以上就是golang如何打包的詳細內容,更多請關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司其它相關文章!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。