Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go module本地包导入

go module本地包导入全过程

作者:anjushi_

文章介绍了使用gom模块化管理工具进行本地包导入的方法,包括启用、配置Gom、创建工作目录、新建与文件、编写代码、运行与发布模块等等等、自动更新与同步等,通过具体流程演示了如何在本地使用与管理Gom模块化包导入与更新的过程om

go module本地包导入

golang 1.11之后加入了go mod来替代GOPATH

官方文档参考:https://golang.google.cn/doc/tutorial/call-module-code

启用go mod

开启 Go modules

# 临时开启 Go modules 功能
export GO111MODULE=on
![请添加图片描述](https://img-blog.csdnimg.cn/direct/3cda800aae2041f98bef026bc274dba3.jpeg)

# 永久开启 Go modules 功能
go env -w GO111MODULE=on

# 设置 Go 的国内代理,方便下载第三方包
go env -w GOPROXY=https://goproxy.cn,direct

通过 go env

go env

主项目工作目录

创建一个工作目录

mkdir myapp

新建mod文件

cd myapp
go mod init myapp

添加函数main.go

package main
    
import (
    "fmt"
)

func main(){
    fmt.Println("This is main")
}

运行

go run main.go

本地module目录

切换目录,新建自己的包

cd ..
mkdir mypkg
go mod init mypkg

包内新建hello.go文件

package mypkg

import "fmt"

func SayHello()string{
    fmt.Println("hello,(print in mypkg)")
    return "success"
}

发布和使用模块

main.go 尝试导入 mydemo.com/mypkg 模块时,Go 工具链会从本地的 ../mypkg 目录加载模块,而不是尝试从远程位置下载

指定包的本地路径

go mod edit -replace mydemo.com/mypkg=../mypkg

在main.go添加自己的包

package main
 
import (
    "fmt"
    my "mydemo.com/mypkg"
)

func main(){
    fmt.Println("This is main")
    flag :=my.SayHello();
    fmt.Println(flag)
}

更新和同步

go mod tidy

查看go mod,已经自动更新

运行

go run main.go

整体目录结构

└── twogo
    ├── myapp
    │   ├── go.mod
    │   └── main.go
    └── mypkg
        ├── go.mod
        └── hello.go

整体流程

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文