当前位置:网站首页>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/
边栏推荐
- Sort out the power node, Mr. Wang he's SSM integration steps
- PMP registration process and precautions
- GoLand environment variable configuration
- 直方图均衡化
- How do microservices aggregate API documents? This wave of show~
- Regular expression (I)
- Problems encountered by scan, scanf and scanln in golang
- 华为联机对战如何提升玩家匹配成功几率
- At the age of 30, I changed to Hongmeng with a high salary because I did these three things
- ASP. Net to access directory files outside the project website
猜你喜欢

Markdown syntax

Hands on deep learning (34) -- sequence model

el-table单选并隐藏全选框

If you can quickly generate a dictionary from two lists

The child container margin top acts on the parent container

Log cannot be recorded after log4net is deployed to the server

QTreeView+自定义Model实现示例

Some points needing attention in PMP learning

Daughter love: frequency spectrum analysis of a piece of music

Sort out the power node, Mr. Wang he's SSM integration steps
随机推荐
Ultimate bug finding method - two points
2022-2028 global seeder industry research and trend analysis report
2022-2028 global visual quality analyzer industry research and trend analysis report
Summary of the most comprehensive CTF web question ideas (updating)
C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
Reading notes on how to connect the network - tcp/ip connection (II)
2022-2028 global strain gauge pressure sensor industry research and trend analysis report
How web pages interact with applets
Implementing expired localstorage cache with lazy deletion and scheduled deletion
Flutter 小技巧之 ListView 和 PageView 的各种花式嵌套
百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼
About the for range traversal operation in channel in golang
Go context 基本介绍
Report on investment analysis and prospect trend prediction of China's MOCVD industry Ⓤ 2022 ~ 2028
Lauchpad x | MODE
[on February 11, 2022, the latest and most fully available script library collection of the whole network, a total of 23]
Global and Chinese market of wheel hubs 2022-2028: Research Report on technology, participants, trends, market size and share
Investment analysis and prospect prediction report of global and Chinese high purity tin oxide Market Ⓞ 2022 ~ 2027
2022-2028 global optical transparency industry research and trend analysis report
Report on the development trend and prospect trend of high purity zinc antimonide market in the world and China Ⓕ 2022 ~ 2027