go从0到1项目实战体系十:go包管理

go mod是Go官⽅引⼊的⼀个依赖管理⼯具.

1. 引入一个本地包:

(1). 设置环境变量引入go module:

$ set GO111MODULE=on
$ go mod init topic.com.cn(模块名)

(2). 文件目录:

topic.com
└─topic
    ├─core         # 本地包在项目中
	│ └─tools.go
    ├─main.go
    └─go.mod

(3). topic.com/topic/main.go:

package main
import (
	"topic.com.cn/core"    # 这个并不是目录名字topic.com,而是上面设置的模块名
)
func main() {
   
	core.ShowName()
}

(4). topic.com/topic/go.mod:

module topic.com
go 1.12

(5). topic.com/topic/core/tools.go:

package core
import "fmt"
func ShowName() {
   
	fmt.Println("david")
}

1.1 包任意位置的引用方式:

(1). 文件目录:

topic.com
├─topic
│ ├─main.go
│ └─go.mod
└─core
  ├─tools.go  
  └─go.mod

(2). topic.com/topic/main.go:

package main
import (
	"core"
)
func main() {
   
	core.ShowName()
}

(4). topic.com/topic/go.mod:

module topic.com
require core v0.0.0                # 包名 版本
replace core v0.0.0 => ../core     # 包的引用
go 1.12

(5). topic.com/core/tools.go:

package core
import "fmt"
func ShowName() {
   
	fmt.Println("david")
}

(6). topic.com/core/go.mod:

module core
go 1.12

2. 引入第三方包(sql-driver为例):

(1). 在topic.com/topic目录下执行:

$ go get github.com/go-sql-driver/mysql@master
  go: finding github.com/go-sql-driver/mysql master
  go: downloading github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0
  go: extracting github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0

:
如果需要指定版本则mysql@v1.4.1

(2). topic.com/topic/go.mod:

module topic.com.cn
require (
	core v0.0.0
	// 新引入的第三方包
	github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0 // indirect
)
replace core v0.0.0 => ../core
go 1.12

(3). 下载的文件位置:

$GOPATH\pkg\mod\github.com\go-sql-driver\mysql@v1.4.1-0.20191022112324-6ea7374bc1b0

相关推荐

  1. go01项目实战体系go管理

    2023-12-23 17:28:01       41 阅读
  2. go01项目实战体系四:函数

    2023-12-23 17:28:01       45 阅读
  3. go01项目实战体系三:GORM

    2023-12-23 17:28:01       23 阅读
  4. Go】依赖管理

    2023-12-23 17:28:01       27 阅读
  5. go语言学习-管理

    2023-12-23 17:28:01       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-23 17:28:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-23 17:28:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-23 17:28:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-23 17:28:01       18 阅读

热门阅读

  1. 【算法集训】基础数据结构:十二、邻接表

    2023-12-23 17:28:01       41 阅读
  2. 雷达目标RCS起伏的Swerling模型及其Matlab代码

    2023-12-23 17:28:01       43 阅读
  3. ubuntu 18/20/22 安装 mysql 数据库

    2023-12-23 17:28:01       43 阅读
  4. 人类基因组版本:hg19和hg38

    2023-12-23 17:28:01       42 阅读
  5. vxWorks常用命令

    2023-12-23 17:28:01       38 阅读
  6. tcp vegas 的力学解释

    2023-12-23 17:28:01       37 阅读
  7. K8S面试题

    2023-12-23 17:28:01       33 阅读
  8. mysql主从主库参数配置

    2023-12-23 17:28:01       31 阅读
  9. C++基础-运算符重载详解

    2023-12-23 17:28:01       31 阅读
  10. 临床医学VR仿真情景实训教学应用

    2023-12-23 17:28:01       48 阅读