go module使用本地包

go module的使用很是簡單

  1. 初始化go.modgit

    go mod init
  2. 整理依賴包github

    go mod tidy
  3. 若是想緩存到vendor目錄golang

    go mod vendor

執行命令以後都會自動把依賴搞定.
可是, 若是咱們是本地開發的包, 尚未遠程倉庫的時候, 要怎麼解決本地包依賴問題呢?sql

使用replace將遠程包替換爲本地包服務

幸運的是, go module 提供了另一個方案, replace, 這個replace怎麼使用的呢?
咱們先看一下一個最基本的mod文件緩存

module GoRoomDemo

go 1.12

require (
    github.com/gin-gonic/gin v1.3.0
    github.com/gohouse/goroom v0.0.0-20190327052827-9ab674039336
    github.com/golang/protobuf v1.3.1 // indirect
    github.com/gomodule/redigo v2.0.0+incompatible
    github.com/mattn/go-sqlite3 v1.10.0
    github.com/stretchr/testify v1.3.0 // indirect
    golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 // indirect
)

這是一個簡單的GoRoom框架的依賴關係包, 若是我想使用本地的goroom, 只須要使用replace便可框架

module GoRoomDemo

go 1.12

require (
    github.com/gin-gonic/gin v1.3.0
    github.com/gohouse/goroom v0.0.0-20190327052827-9ab674039336
    github.com/golang/protobuf v1.3.1 // indirect
    github.com/gomodule/redigo v2.0.0+incompatible
    github.com/mattn/go-sqlite3 v1.10.0
    github.com/stretchr/testify v1.3.0 // indirect
    golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 // indirect
)

replace github.com/gohouse/goroom => /path/to/go/src/github.com/gohouse/goroom
這裏的 path/to/go/src/github.com/gohouse/goroom 是本地的包路徑

這樣, 咱們就能夠愉快的使用本地目錄了ui

相關文章
相關標籤/搜索