go如何import本地包

go的import与python或java不太一样,第一次搞go开发在本地封装lib后import时可能会浪费不少时间,这里说明下,go的import分两种场景:

1.import地址是一个可访问的git项目url

依赖库存在于gitserver,直接import即可:

import "github.com/yanjingang/murmur"

2.import地址是本地的项目内lib封装

要import的是项目内部文件,且项目尚未上传gitserver,还在本地开发中。这种情况下直接import 会提示cannot find module providing package,需要先设置GOPATH,且把项目都放在$GOPATH/src/projectxxxx 位置,具体步骤如下:

#1.设置GOPATH
vim  ~/.bashrc 
    #go
    export GOPATH=/Users/yanjingang/project/gopath/
    export GO111MODULE=on
    export GOPROXY=https://goproxy.io
#生效
source ~/.bashrc 

#2.创建测试hello项目
mkdir $GOPATH/src/hello             #项目目录
mkdir $GOPATH/src/hello/pkg1    #项目内部封装包目录

vim $GOPATH/src/hello/pkg1/abc.go
    package pkg1
    func Hello() string {    //注意,只有首字母大写的函数是public外部可访问的
        return "Hello import pkg!"
    } 

vim $GOPATH/src/hello/main.go
    package main
    import (
	"fmt"
	"hello/pkg1"
    )
    func main(){
	var ret = pkg1.Hello()   //调用与abc.go文件名没关系,只跟package和目录层级有关系
	fmt.Println(ret)
    } 

#3.创建项目go.mod
cd $GOPATH/src/hello
go mod init hello

#4.运行测试
go run main.go 
屏幕输出:Hello import pkg!

 

yan 2019.6.3 22:31

发表评论

电子邮件地址不会被公开。