当前位置:网站首页>Golang Modules
Golang Modules
2022-07-04 09:37:00 【Dynamic for a while, reconstructing the crematorium】
Create a new module
stay $GOPATH/src Folder outside ( such as //hello), Create a new go file , for instance hello.go. And let's write him a test. It will be found after running
PASS
ok _/hello
Because we work in $GOPATH And any module outside ,go The command does not know the import path of the current directory ( The import path is the only string ID that identifies the package ) So a fake import path is created according to the location of the directory _/hello
Let's use go mod init Initialize the folder to module Well !
go mod init demo.com/hello
go mod init Will write go.mod file
go.mod It will only appear in the root directory of the module . The subdirectory package import path under the module consists of the module path plus the subdirectory path . For example, there are subdirectories under the module /world, Then the import path is demo.com/hello/world
Add dependency
go Command by using go.mod Specific dependent module versions are listed in to resolve the import . When go.mod Unspecified time , Will automatically find the latest dependency , Add to go.mod
Except, of course, go.mod Beyond the direct dependencies listed in , There are also some indirect dependencies . for instance rsc.io/quote This module also relies on rsc.io/sampler, that rsc.io/sampler Will also download
It can be done by
go list -m allList all dependencies of the current module
Besides ,go.sum Also record encrypted hash values that depend on the module version . but go.sum Not at all package-lock.json, Only all direct and indirect dependencies of the current module will be recorded , And checksums .
Upgrade dependency
We can go through go get To upgrade to the latest dependent version .
But sometimes there are incompatibilities
$ go get rsc.io/sampler
go: finding rsc.io/sampler v1.99.99
go: downloading rsc.io/sampler v1.99.99
go: extracting rsc.io/sampler v1.99.99
$ go test
--- FAIL: TestHello (0.00s)
hello_test.go:8: Hello() = "99 bottles of beer on the wall, 99 bottles of beer, ...", want "Hello, world."
FAIL
exit status 1
FAIL example.com/hello 0.014s
$
At this point, you can list all modules available tagged edition , Then select a compatible version to download
$ go list -m -versions rsc.io/sampler
rsc.io/sampler v1.0.0 v1.2.0 v1.2.1 v1.3.0 v1.3.1 v1.99.99
$ go get rsc.io/[email protected]
Delete dependency
go mod tidy Will clear these unused dependencies
Add dependent major version
Suppose we want to use multiple different master versions of a dependency
package hello
import (
"rsc.io/quote"
quoteV3 "rsc.io/quote/v3"
)
func Hello() string {
return quote.Hello()
}
func Proverb() string {
return quoteV3.Concurrency()
}
Go Each different version of the module uses a different module path .
replace Replace require Declaration of dependency
module demo
replace outter => /local/outter
require (
outter v1.0.0
)
Ref
- https://go.dev/blog/using-go-modules
- https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/
边栏推荐
- Leetcode (Sword finger offer) - 35 Replication of complex linked list
- PHP personal album management system source code, realizes album classification and album grouping, as well as album image management. The database adopts Mysql to realize the login and registration f
- 法向量点云旋转
- libmysqlclient.so.20: cannot open shared object file: No such file or directory
- Svg image quoted from CodeChina
- How to write unit test cases
- 2022-2028 global industrial gasket plate heat exchanger industry research and trend analysis report
- 2022-2028 global intelligent interactive tablet industry research and trend analysis report
- 华为联机对战如何提升玩家匹配成功几率
- lolcat
猜你喜欢

Hands on deep learning (33) -- style transfer

2022-2028 global seeder industry research and trend analysis report

Hands on deep learning (32) -- fully connected convolutional neural network FCN

26. Delete duplicates in the ordered array (fast and slow pointer de duplication)

How web pages interact with applets

2022-2028 global gasket plate heat exchanger industry research and trend analysis report

Sword finger offer 30 contains the stack of Min function

mmclassification 标注文件生成

2022-2028 global gasket metal plate heat exchanger industry research and trend analysis report

2022-2028 global edible probiotic raw material industry research and trend analysis report
随机推荐
什么是uid?什么是Auth?什么是验证器?
什么是权限?什么是角色?什么是用户?
Opencv environment construction (I)
Lauchpad X | 模式
【leetcode】29. Divide two numbers
"How to connect the network" reading notes - Web server request and response (4)
Golang defer
Daughter love in lunch box
SSM online examination system source code, database using mysql, online examination system, fully functional, randomly generated question bank, supporting a variety of question types, students, teache
QTreeView+自定义Model实现示例
2022-2028 global gasket plate heat exchanger industry research and trend analysis report
ArrayBuffer
At the age of 30, I changed to Hongmeng with a high salary because I did these three things
UML sequence diagram [easy to understand]
How to batch change file extensions in win10
Launpad | 基础知识
Dynamic analysis and development prospect prediction report of high purity manganese dioxide in the world and China Ⓡ 2022 ~ 2027
Lauchpad X | 模式
2022-2028 global industrial gasket plate heat exchanger industry research and trend analysis report
百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼