为何网上的一些golang项目,它们import的时候 都是github.com/xxx/xxx这样的规则?
那我开发自己的项目的时候,gopath是否也要设置成这样?
如何import我自己写的包?"./packagename/ 这样吗? 可是我看开源项目引用自己的包,都不是通过相对路径去引用的
请问一个常规的golang项目 该如何去管理它的import,包括第三方和自身,以及如何import自定义包
可以用govendor来管理go包的问题,https://github.com/kardianos/govendor
git 的包默认的路径是guihub,你可以把它改路径,golang开源在github上,上面很多库。自己导包也可以的,放到src里面就可以把。
使用gopath的时候,一般引用是从src下一层开始,比如src/githum.com/...,引用githum.com...,我的工程src/xxx.com/go-qb/...,引用xxx.com/go-qb/...
使用mod的时候,githum自动下载到gopath的pkg里,全名引用githum.com...,我的工程从mod文件夹下一层开始引用,mod/xxx.com/go-qb/...,引用xxx.com/go-qb/...
我这里两种情况都是如此:
import (
"context"
"net/http"
"os"
"os/signal"
"time"
"xxx.com/go-qb/config"
"xxx.com/go-qb/db"
"xxx.com/go-qb/redis"
"xxx.com/go-qb/router"
"github.com/gin-gonic/gin"
"github.com/lexkong/log"
"github.com/spf13/viper"
"github.com/unrolled/secure"
)
包使用的时候通常用最后一层路径来点出方法或变量,比如上面的config,db等等,用法:db.X()
如果想重命名,在引用前面加方法名即可:
mysql "xxx.com/go-qb/db"
用法:mysql.X()
如果想不加包名,在引用前面加.即可:
. "xxx.com/go-qb/db"
用法:X()