当前位置:网站首页>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/
边栏推荐
- Fatal error in golang: concurrent map writes
- UML sequence diagram [easy to understand]
- lolcat
- Function comparison between cs5261 and ag9310 demoboard test board | cost advantage of cs5261 replacing ange ag9310
- How to write unit test cases
- 《网络是怎么样连接的》读书笔记 - 认识网络基础概念(一)
- MySQL foundation 02 - installing MySQL in non docker version
- [on February 11, 2022, the latest and most fully available script library collection of the whole network, a total of 23]
- Summary of the most comprehensive CTF web question ideas (updating)
- Log cannot be recorded after log4net is deployed to the server
猜你喜欢
mmclassification 标注文件生成
2022-2028 global elastic strain sensor industry research and trend analysis report
Sort out the power node, Mr. Wang he's SSM integration steps
How do microservices aggregate API documents? This wave of show~
C # use gdi+ to add text with center rotation (arbitrary angle)
Four common methods of copying object attributes (summarize the highest efficiency)
直方图均衡化
IIS configure FTP website
MATLAB小技巧(25)竞争神经网络与SOM神经网络
Hands on deep learning (34) -- sequence model
随机推荐
How to display √ 2 on the command line terminal ̅? This is actually a blog's Unicode test article
2022-2028 global intelligent interactive tablet industry research and trend analysis report
Write a jison parser from scratch (2/10): learn the correct posture of the parser generator parser generator
Hands on deep learning (32) -- fully connected convolutional neural network FCN
2022-2028 global tensile strain sensor industry research and trend analysis report
MATLAB小技巧(25)竞争神经网络与SOM神经网络
Trees and graphs (traversal)
How web pages interact with applets
PHP student achievement management system, the database uses mysql, including source code and database SQL files, with the login management function of students and teachers
IIS configure FTP website
技术管理进阶——如何设计并跟进不同层级同学的绩效
How do microservices aggregate API documents? This wave of show~
Report on the development trend and prospect trend of high purity zinc antimonide market in the world and China Ⓕ 2022 ~ 2027
Summary of the most comprehensive CTF web question ideas (updating)
Simulate EF dbcontext with MOQ - mocking EF dbcontext with MOQ
Write a jison parser from scratch (3/10): a good beginning is half the success -- "politics" (Aristotle)
法向量点云旋转
Golang Modules
Latex download installation record
ArrayBuffer