当前位置:网站首页>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/
边栏推荐
- Some points needing attention in PMP learning
- libmysqlclient.so.20: cannot open shared object file: No such file or directory
- Launpad | Basics
- Are there any principal guaranteed financial products in 2022?
- Logstack configuration details -- elasticstack (elk) work notes 020
- How web pages interact with applets
- About the for range traversal operation in channel in golang
- Simulate EF dbcontext with MOQ - mocking EF dbcontext with MOQ
- Four common methods of copying object attributes (summarize the highest efficiency)
- Get the source code in the mask with the help of shims
猜你喜欢
165 webmaster online toolbox website source code / hare online tool system v2.2.7 Chinese version
JDBC and MySQL database
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
Hands on deep learning (35) -- text preprocessing (NLP)
AMLOGIC gsensor debugging
libmysqlclient.so.20: cannot open shared object file: No such file or directory
Ultimate bug finding method - two points
2022-2028 global visual quality analyzer industry research and trend analysis report
Opencv environment construction (I)
C语言指针面试题——第二弹
随机推荐
Investment analysis and future production and marketing demand forecast report of China's paper industry Ⓥ 2022 ~ 2028
MATLAB小技巧(25)竞争神经网络与SOM神经网络
Global and Chinese markets for laser assisted liposuction (LAL) devices 2022-2028: Research Report on technology, participants, trends, market size and share
法向量点云旋转
Reload CUDA and cudnn (for tensorflow and pytorch) [personal sorting summary]
《网络是怎么样连接的》读书笔记 - WEB服务端请求和响应(四)
Global and Chinese markets of thrombography hemostasis analyzer (TEG) 2022-2028: Research Report on technology, participants, trends, market size and share
"How to connect the Internet" reading notes - FTTH
Reading notes of how the network is connected - understanding the basic concepts of the network (I)
C语言指针面试题——第二弹
Global and Chinese markets of hemoglobin analyzers in care points 2022-2028: Research Report on technology, participants, trends, market size and share
26. Delete duplicates in the ordered array (fast and slow pointer de duplication)
Summary of the most comprehensive CTF web question ideas (updating)
2022-2028 global protein confectionery industry research and trend analysis report
Lauchpad X | 模式
Hands on deep learning (34) -- sequence model
Global and Chinese market of sampler 2022-2028: Research Report on technology, participants, trends, market size and share
C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
Dynamic analysis and development prospect prediction report of high purity manganese dioxide in the world and China Ⓡ 2022 ~ 2027
Hands on deep learning (33) -- style transfer