08-go mod

作者: 玄德公笔记 | 来源:发表于2021-11-24 19:58 被阅读0次

1. go mod

创建项目

  • 创建一个目录
root@liubei:/data/goproject/src# mkdir go-test
root@liubei:/data/goproject/src# cd go-test/
  • 添加main.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() 

1.2 mod初始化

  • 执行如下命令:
# go mod init
  • 多了一个go.mod文件
root@liubei:/data/goproject/src/go-test# ls
go.mod  main.go
  • 其内容如下:
module go-test

go 1.17

1.3 重新构建依赖

  • 执行入下命令重新构建依赖
# go mod tidy

依赖的包会写到go.mod 文件中

  • go.mod 文件内容如下:
module go-test

go 1.17

require github.com/gin-gonic/gin v1.7.6

require (
    github.com/gin-contrib/sse v0.1.0 // indirect
    github.com/go-playground/locales v0.13.0 // indirect
    github.com/go-playground/universal-translator v0.17.0 // indirect
    github.com/go-playground/validator/v10 v10.4.1 // indirect
    github.com/golang/protobuf v1.3.3 // indirect
    github.com/json-iterator/go v1.1.9 // indirect
    github.com/leodido/go-urn v1.2.0 // indirect
    github.com/mattn/go-isatty v0.0.12 // indirect
    github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
    github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect
    github.com/ugorji/go/codec v1.1.7 // indirect
    golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
    golang.org/x/sys v0.0.0-20200116001909-b77594299b42 // indirect
    gopkg.in/yaml.v2 v2.2.8 // indirect
)

但此时 这些依赖在goland中看都是红色,说明这些依赖还没有被下载

1.4编译

# go build main.go

此时从goland中可以看到,这些包的引用都变成了绿色

2. vendor

作用:将依赖包拷贝到代码目录下vendor目录

2.1 拷贝依赖

# go mod vendor
  • 此时多了 vendor目录
root@liubei:/data/goproject/src/go-test# ll
总用量 8936
drwxr-xr-x 4 root root    4096 11月 24 19:48 ./
drwxr-xr-x 5 root root    4096 11月 24 18:45 ../
-rw-r--r-- 1 root root     870 11月 24 18:56 go.mod
-rw-r--r-- 1 root root    5037 11月 24 18:56 go.sum
drwxr-xr-x 2 root root    4096 11月 24 19:03 .idea/
-rwxr-xr-x 1 root root 9114818 11月 24 19:01 main*
-rw-r--r-- 1 root root     230 11月 24 18:52 main.go
drwxr-xr-x 5 root root    4096 11月 24 19:48 vendor/

2.2 使用vendor目录编译

# go build -mod vendor

说明:如果不使用 -mod则依然不会使用项目vendor中的依赖

相关文章

  • 08-go mod

    1. go mod 创建项目 创建一个目录 添加main.go 1.2 mod初始化 执行如下命令: 多了一个g...

  • 08-go map

    1、什么是map map是go中的关系映射容器,其内部是基于散列表(hash)实现的。map是一种无序的数据结构,...

  • 随笔(7)mod(求模)

    a mod b = a mod (-b)

  • ubuntu16.04 apache2.4 安装mod_bw和m

    1. mod_bw 配置 2.mod_limitipconn ps:该步会自动将mod_limitipconn.s...

  • 函数6

    mod函数的语法格式 =mod(number,divisor)=mod(被除数,除数)一般不会单独使用; 实际应用...

  • 品优购 底部

    设计 分为三部分: mod_service 服务模块 mod_help 帮助模块 mod_copyright 版权...

  • gomod常用

    gomod文件初始化:go mod init找到项目依赖并导入:go mod tidy安装指定版本:go mod ...

  • Golang Modules 包管理实践

    1、设置环境变量 Windows Linux 2、mod初始化 3、go mod tidy 从 go.mod 删除...

  • 50.Go Mod 来创建 Gin 项目

    开启 Go mod 初始化 Go mod 使用Go mod 进行包管理,可以在$GOPATH/src 之外创建项目...

  • apache自建证书实现https

    1、安装mod_ssl yum -y install mod_ssl 2、HTTP 服务器上配置mod_ssl 2...

网友评论

      本文标题:08-go mod

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