当前位置:网站首页>Modules golang
Modules golang
2022-07-04 09:37:00 【Reconstruction du crématoire】
Créer un nouveaumodule
In$GOPATH/srcDossiers en dehors(Par exemple,//hello),Créer un nouveaugoDocumentation,Par exemple,hello.go.Et écrivons - luitest.Après l'exécution
PASS
ok _/hello
Parce qu'on travaille dans $GOPATH
Et à l'extérieur de n'importe quel module,go La commande ne connaît pas le chemin d'importation du répertoire courant(Le chemin d'importation est un identifiant de chaîne unique qui identifie le paquet)Donc un faux chemin d'importation a été créé en fonction de l'emplacement du Répertoire _/hello
Utilisonsgo mod init
Initialiser le dossier àmoduleC'est parti.!
go mod init demo.com/hello
go mod init
Sera écritgo.modDocumentation
go.modIl n'apparaîtra que dans le Répertoire racine du module.Le chemin d'importation du paquet de sous - répertoires sous le module se compose du chemin du module plus le chemin du sous - répertoire.Par exemple, il y a des sous - répertoires sous le module/world,Alors le chemin d'importation estdemo.com/hello/world
Ajouter une dépendance
goCommande en utilisantgo.modListe des versions spécifiques des modules dépendants pour résoudre l'importation.Quandgo.modNon spécifié,Les dernières dépendances sont automatiquement trouvées,Ajouter àgo.mod
Sauf, bien sûr.go.modEn plus des dépendances directes énumérées dans,Il y a aussi des dépendances indirectes.Par exemple,rsc.io/quoteCe module repose également surrsc.io/sampler,Alorsrsc.io/samplerIl sera également téléchargé
Peut passer
go list -m all
Liste toutes les dépendances du module actuel
En outre,go.sum Les valeurs de hachage de chiffrement sont également enregistrées pour se fier à la version du module .Mais...go.sumCe n'est paspackage-lock.json, Seules les dépendances directes et indirectes du module actuel seront enregistrées , Et somme de contrôle .
Mise à jour des dépendances
On peut passer pargo get
Pour passer à la dernière version dépendante .
Mais il y a parfois des incompatibilités
$ 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
$
Tous les modules disponibles peuvent être listés taggedVersion, Puis choisissez une version compatible pour télécharger
$ 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]
Supprimer les dépendances
go mod tidy
Ces dépendances inutilisées sont effacées
Ajouter une version principale dépendante
Supposons que nous devions utiliser plusieurs versions principales différentes d'une seule dépendance
package hello
import (
"rsc.io/quote"
quoteV3 "rsc.io/quote/v3"
)
func Hello() string {
return quote.Hello()
}
func Proverb() string {
return quoteV3.Concurrency()
}
Go Chaque version différente du module utilise un chemin de module différent .
replace RemplacerrequireDéclaration de dépendance
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/
边栏推荐
- 什么是权限?什么是角色?什么是用户?
- About the for range traversal operation in channel in golang
- Go context 基本介绍
- Ultimate bug finding method - two points
- Reading notes on how to connect the network - tcp/ip connection (II)
- Web端自动化测试失败原因汇总
- Investment analysis and future production and marketing demand forecast report of China's paper industry Ⓥ 2022 ~ 2028
- 2022-2028 global edible probiotic raw material industry research and trend analysis report
- Development trend and market demand analysis report of high purity tin chloride in the world and China Ⓔ 2022 ~ 2027
- Markdown syntax
猜你喜欢
Jianzhi offer 09 realizes queue with two stacks
回复评论的sql
Hands on deep learning (34) -- sequence model
IIS configure FTP website
pcl::fromROSMsg报警告Failed to find match for field ‘intensity‘.
Write a mobile date selector component by yourself
技术管理进阶——如何设计并跟进不同层级同学的绩效
Function comparison between cs5261 and ag9310 demoboard test board | cost advantage of cs5261 replacing ange ag9310
How does idea withdraw code from remote push
2022-2028 global elastic strain sensor industry research and trend analysis report
随机推荐
If you can quickly generate a dictionary from two lists
Four common methods of copying object attributes (summarize the highest efficiency)
"How to connect the network" reading notes - Web server request and response (4)
mmclassification 标注文件生成
Launchpad x | mode
What is uid? What is auth? What is a verifier?
Pueue data migration from '0.4.0' to '0.5.0' versions
Launpad | basic knowledge
UML 时序图[通俗易懂]
Jianzhi offer 09 realizes queue with two stacks
Launpad | 基础知识
Global and Chinese markets of hemoglobin analyzers in care points 2022-2028: Research Report on technology, participants, trends, market size and share
Lauchpad x | MODE
Global and Chinese market of wheel hubs 2022-2028: Research Report on technology, participants, trends, market size and share
Reading notes on how to connect the network - hubs, routers and routers (III)
Solution to null JSON after serialization in golang
Dynamic analysis and development prospect prediction report of high purity manganese dioxide in the world and China Ⓡ 2022 ~ 2027
2022-2028 global tensile strain sensor industry research and trend analysis report
GoLand environment variable configuration
回复评论的sql