当前位置:网站首页>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 all
List 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/
边栏推荐
- Analysis report on the production and marketing demand and investment forecast of tellurium dioxide in the world and China Ⓣ 2022 ~ 2027
- UML sequence diagram [easy to understand]
- How does idea withdraw code from remote push
- Lauchpad x | MODE
- Latex download installation record
- Luogu deep foundation part 1 Introduction to language Chapter 4 loop structure programming (2022.02.14)
- `Example of mask ` tool use
- About the for range traversal operation in channel in golang
- Hands on deep learning (33) -- style transfer
- 自动化的优点有哪些?
猜你喜欢
libmysqlclient.so.20: cannot open shared object file: No such file or directory
H5 audio tag custom style modification and adding playback control events
AMLOGIC gsensor debugging
2022-2028 global visual quality analyzer industry research and trend analysis report
xxl-job惊艳的设计,怎能叫人不爱
百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼
JDBC and MySQL database
2022-2028 global gasket metal plate heat exchanger industry research and trend analysis report
el-table单选并隐藏全选框
C # use gdi+ to add text with center rotation (arbitrary angle)
随机推荐
IIS configure FTP website
Analysis report on the development status and investment planning of China's modular power supply industry Ⓠ 2022 ~ 2028
Reading notes on how to connect the network - tcp/ip connection (II)
GoLand environment variable configuration
How to display √ 2 on the command line terminal ̅? This is actually a blog's Unicode test article
LeetCode 74. Search 2D matrix
How does idea withdraw code from remote push
Global and Chinese markets for laser assisted liposuction (LAL) devices 2022-2028: Research Report on technology, participants, trends, market size and share
Explanation of closures in golang
Luogu deep foundation part 1 Introduction to language Chapter 4 loop structure programming (2022.02.14)
2022-2028 global industry research and trend analysis report on anterior segment and fundus OTC detectors
浅谈Multus CNI
PHP is used to add, modify and delete movie information, which is divided into foreground management and background management. Foreground users can browse information and post messages, and backgroun
2022-2028 global small batch batch batch furnace industry research and trend analysis report
2022-2028 global visual quality analyzer industry research and trend analysis report
百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼
If you can quickly generate a dictionary from two lists
MySQL transaction mvcc principle
法向量点云旋转
Lauchpad x | MODE