golang 引用相对路径package

My $GOPATH is

"/Users/peter/goworkspace"

Golang 版本是:

go version go1.6 darwin/amd64

在这个workspace下我有多个不同golang项目,目录结构类似于

+/goworkspace  
  +---/bin  
  +---/pkg  
  +---/src  
    +---/project1
        +---package1 
           +---file1.go 
           +---file2.go 
           +---file3.go 
        +---package2 
        +---package3 
        +---main.go 
    +---/project2
    +---/project3

在proj1下的main.go中,我用相对路径的方式引用了proj1下的其它package

import(  
     "./package1"      
     "./package2"      
     "./package3"
 )  

但是当我 run go build的时候,go编译器一直提示报错:

" can't load package: local import "../package" in non-local package“

我尝试不用相对路径引入package的话

import(
    "project1/package1"  
    "project1/package2"   
    "project1/package3"   
)  

就能编译成功。

所以,我第一个main.go中为什么会编译出错呢?
如果不引用相对路径导入包的话,那如果我以后重命名这个project的话,那是否导入的包爷得重新改写?

posted @ 2018-09-05 21:59  左正  阅读(11178)  评论(4编辑  收藏  举报