2022-04-05:golang中go.mod文件,做框架开发需要解析,请问如何解析?

Posted 福大大架构师每日一题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022-04-05:golang中go.mod文件,做框架开发需要解析,请问如何解析?相关的知识,希望对你有一定的参考价值。

2022-04-05:golang中go.mod文件,做框架开发需要解析,请问如何解析?

答案2022-04-05:

go.mod解析可参考这个。做框架开发主要是用到require和replace。具体见代码。

go.mod文件如下:

module test5

go 1.17

require (
	github.com/gin-contrib/sse v0.1.0 // indirect
	github.com/gin-gonic/gin v1.7.7 // indirect
	github.com/go-playground/locales v0.14.0 // indirect
	github.com/go-playground/universal-translator v0.18.0 // indirect
	github.com/go-playground/validator/v10 v10.10.1 // indirect
	github.com/golang/protobuf v1.5.2 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/leodido/go-urn v1.2.1 // indirect
	github.com/mattn/go-isatty v0.0.14 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.2 // indirect
	github.com/ugorji/go/codec v1.2.7 // indirect
	golang.org/x/crypto v0.0.0-20220307211146-efcb8507fb70 // indirect
	golang.org/x/mod v0.5.1 // indirect
	golang.org/x/sys v0.0.0-20220307203707-22a9840ba4d7 // indirect
	golang.org/x/text v0.3.7 // indirect
	golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
	google.golang.org/protobuf v1.27.1 // indirect
	gopkg.in/yaml.v2 v2.4.0 // indirect
	github.com/emicklei/proto v1.9.1
)


replace github.com/emicklei/proto v1.9.1 => github.com/emicklei/proto v1.9.1

代码用golang编写。代码如下:

package main

import (
	"fmt"
	"io/ioutil"

	"golang.org/x/mod/modfile"
)

func main() 
	goModFilePathData, _ := ioutil.ReadFile("go.mod")
	modFile, _ := modfile.Parse("go.mod", goModFilePathData, nil)
	fmt.Println("require如下:")
	fmt.Println("")
	for _, r := range modFile.Require 
		fmt.Println(r.Mod.Path + "@" + r.Mod.Version)
	
	fmt.Println("------------------------")
	fmt.Println("replace如下:")
	fmt.Println("")
	for _, r := range modFile.Replace 
		fmt.Println("老:" + r.Old.Path + "@" + r.Old.Version)
		fmt.Println("新:" + r.New.Path + "@" + r.New.Version)
		fmt.Println("")
	



执行结果如下:

以上是关于2022-04-05:golang中go.mod文件,做框架开发需要解析,请问如何解析?的主要内容,如果未能解决你的问题,请参考以下文章

Golang-go mod 导入本地包

go mod下载依赖错误Get https://sum.golang.org

golang项目依赖管理工具go vendor,go mod

golang项目依赖管理工具go vendor,go mod

Golang使用go.mod配置加载本地模块

golang-》使用go mod 代理安装插件