当前位置:网站首页>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/
边栏推荐
- 百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼
- Flutter tips: various fancy nesting of listview and pageview
- What is permission? What is a role? What are users?
- QTreeView+自定义Model实现示例
- Global and Chinese market of sampler 2022-2028: Research Report on technology, participants, trends, market size and share
- You can see the employment prospects of PMP project management
- 自动化的优点有哪些?
- Investment analysis and future production and marketing demand forecast report of China's paper industry Ⓥ 2022 ~ 2028
- 2022-2028 global tensile strain sensor industry research and trend analysis report
- Summary of the most comprehensive CTF web question ideas (updating)
猜你喜欢

How does idea withdraw code from remote push

2022-2028 global intelligent interactive tablet industry research and trend analysis report

At the age of 30, I changed to Hongmeng with a high salary because I did these three things

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

You can see the employment prospects of PMP project management

Sword finger offer 30 contains the stack of Min function

How do microservices aggregate API documents? This wave of show~

Logstack configuration details -- elasticstack (elk) work notes 020

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

After unplugging the network cable, does the original TCP connection still exist?
随机推荐
Markdown syntax
After unplugging the network cable, does the original TCP connection still exist?
技术管理进阶——如何设计并跟进不同层级同学的绩效
Some points needing attention in PMP learning
Function comparison between cs5261 and ag9310 demoboard test board | cost advantage of cs5261 replacing ange ag9310
Launpad | 基礎知識
Solution to null JSON after serialization in golang
Svg image quoted from CodeChina
`Example of mask ` tool use
2022-2028 global small batch batch batch furnace industry research and trend analysis report
C语言指针面试题——第二弹
Summary of the most comprehensive CTF web question ideas (updating)
Sword finger offer 30 contains the stack of Min function
Global and Chinese market of bipolar generators 2022-2028: Research Report on technology, participants, trends, market size and share
UML 时序图[通俗易懂]
Hands on deep learning (34) -- sequence model
[on February 11, 2022, the latest and most fully available script library collection of the whole network, a total of 23]
26. Delete duplicates in the ordered array (fast and slow pointer de duplication)
法向量点云旋转
Regular expression (I)