고랭 패키징 방법:
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 디렉터리를 쌀처럼 취급합니다.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 코드 디렉터리에서 rice embed-go를 직접 실행합니다.
rice embed-go rice -i "github.com/fuxiaohei/xyz" embed-go // -i 处理指定包里的 go.rice 操作
더 많은 Golang 지식을 보려면 PHP 중국어 웹사이트 golang 튜토리얼 칼럼을 주목하세요.
위 내용은 golang을 패키징하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!