美文网首页
使用 Go Module 构建项目

使用 Go Module 构建项目

作者: 简单一点点 | 来源:发表于2019-11-23 17:47 被阅读0次

生成项目

创建一个目录作为 GO 项目目录。然后进入该目录并初始化项目。

cd test1
go mod init test1

目录下会生成模块配置文件go.mod,其中包含模块名称和版本。

module test1

go 1.13

使用Module

Go Module有以下作用:

  • 用于获取外部包的依赖关系管理。
  • 解析自定义包作为GOPATH的替代。
  • 包版本管理和发布。

依赖外部包

创建一个简单的 go 程序,在其中使用 jsoniter 来生成json 。

package main

import (
    "fmt"
    jsoniter "github.com/json-iterator/go"
)

type TestInfo struct {
    Message string
}

func main() {
    info := TestInfo {
        Message: "Hahaha",
    }

    json, _ := jsoniter.Marshal(&info)
    fmt.Println(string(json))
}

执行 go run 或者 go build 即可触发依赖解析。

go build test.go

执行完毕后,发现在目录下出现了 go.sum 和 test.exe 文件。test.exe 即为可执行文件, go.sum 包含特定模块版本内容的预期加密校验和。

github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/json-iterator/go v1.1.8 
...

再次查看 go.mod ,也会发现多了一行内容。

module test1

go 1.13

require github.com/json-iterator/go v1.1.8 // indir

依赖自定义包

在项目中创建 handlers 目录,在其中创建 controller.go 文件并添加如下代码。注意 ShowInfo 方法开头字母大写方便外部引用。

package controller

import "fmt"

func ShowInfo() {
    fmt.Println("from other package controller")
}

修改原来的 test.go 文件代码。

package main

import (
    "fmt"
    controller "test1/handlers"
    jsoniter "github.com/json-iterator/go"
)

type TestInfo struct {
    Message string
}

func main() {
    info := TestInfo {
        Message: "Hahaha",
    }

    json, _ := jsoniter.Marshal(&info)
    fmt.Println(string(json))
    controller.ShowInfo()
}

执行 go build 命令,可以看到生成了 test1.exe 可执行文件。

相关文章

  • 使用 Go Module 构建项目

    生成项目 创建一个目录作为 GO 项目目录。然后进入该目录并初始化项目。 目录下会生成模块配置文件go.mod,其...

  • go run 报cannot find package "xxx

    原因 电脑安装的go是1.9.0,而新的项目使用go module,这是golang 1.11.0后才支持的。 解...

  • 常用的go mod命令 与 go get

    简单的使用go module

  • go modlue的基本使用

    配置 设置环境变量:GO111MODULE=on 使用 1. 新建一个项目hello_go_molue 2. de...

  • Go的间接依赖

    为什么已经在module/项目中使用go mod download下来所需依赖了,但是之后运行go 命令仍然出现了...

  • Go 包管理之module

    Go Module 使用 Go Module 是官方用来管理 package 依赖的工具, 1.11 新加的, 使...

  • Gradle构建多Module项目

    1.为什么要使用多Module项目 代码拆分,层次、结构清晰,利于维护 Module可复用 2.如何构建多Modu...

  • golang学习笔记

    go module基本使用 mkdir beemodcd beemodgo mod init beemod go语...

  • go module 学习

    go 版本 go version go1.11 darwin/amd64 go module 使用说明 go mo...

  • bitcoin mempool 杂记

    新构建的项目 新项目的构建文件:txmempool.go; txentry.go 已经完成的方法: mempool...

网友评论

      本文标题:使用 Go Module 构建项目

      本文链接:https://www.haomeiwen.com/subject/afghwctx.html