今天看啥  ›  专栏  ›  飞翔吧星尘龙

Go 语言包管理模块化最佳实践

飞翔吧星尘龙  · 简书  ·  · 2019-11-01 10:15

在 Go 语言 1.13 版本之后,go mod 已成包管理最佳实践。但是很多讲包管理的文章讲了太多 Go 包管理的历史,不是我想要的,我在这里只讲最佳实践要怎么做。

新项目

新建一个项目做示范

mkdir app
cd app

在项目目录下初始化 go mod

go mod init app

app 就是这个项目的名称,import 时会用到。完成后目录下会多了 go.mod go.sum ,表明这已经是个 go mod 项目了。

新建 hello 模块,需要在 hello 目录下新建 hello.go 文件

// app/hello/hello.go
package hello

func Say() string {
        return "hello"
}

新建 main.go 文件,导入 hello 模块(以 app 开头)

// app/main.go
package main

import (
        "fmt"
        "app/hello"
)

func main() {
        a := hello.Say()
        fmt.Println(a)
}

go run 自然会处理好依赖关系。

go run main.go

改造旧项目

过程非常简单,
先在项目初始化 go mod init xxx,
然后把导入的以 ./ 开头的相对路径改成以 xxx 为开头的绝对路径,
导入 github 上的框架的路径不用改,就和原来一样用 url 路径就行。




原文地址:访问原文地址
快照地址: 访问文章快照