先看程序a.go:

package main

import (
    "fmt"
    "github.com/apodemakeles/ugo/time"
)

func main() {
    fmt.Println(utime.NowUnixTS())
}

        编译出错, 因为没对应的包。

        GOPATH路径是:/xxx/taoge,   而a.go的路径是/xxx/taoge/src/learn,  怎么搞呢? 下载go的dep包, 然后在learn目录下执行dep init, 看看结果:

/xxx/taoge/src/learn$ dep init
  Using ^0.3.0 as constraint for direct dep github.com/apodemakeles/ugo
  Locking in v0.3.0 (29d7613) for direct dep github.com/apodemakeles/ugo
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ ls
Gopkg.lock      Gopkg.toml      a.go            vendor
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ 
/xxx/taoge/src/learn$ go run a.go 
1539865889
/xxx/taoge/src/learn$ 

       vendor下面便有所需要的包。

       至于dep相关命令, 查一下就知道了。

 

       还要说明一下, vendor路径的优先级比GOPATH还高。但是,如果在/xxx/taoge/src下面放置a.go, 那就找不到/xxx/taoge/src/learn目录下的vendor目录了, 而如果在/xxx/taoge/src/learn/yyy下放置a.go, 依然可以找到vendor, 为什么呢?因为找vendor目录的原则是:先找当前目录下的vendor目录, 找不到的话, 再找上一路径下的vendor目录, 以此类推。

       不多说。

 

 

 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐