l'éditeur php Yuzai est là pour partager avec vous une question sur le langage Go : "Comment importer l'espace de travail en tant que dépendance dans un autre référentiel Go ?" Parfois, nous pouvons avoir besoin d'importer un espace de travail en tant que dépendance dans un autre référentiel pour l'utiliser dans un projet. Dans cet article, je vais vous présenter en détail comment atteindre cet objectif pour vous aider à mieux gérer les dépendances de votre projet de langage Go.
J'ai un projet multi-espaces de travail, la structure est :
apps/go.mod go.work
Ce projet contient un sous-module apps
及其 go.work
Le fichier contient :
go 1.180 use ( ./apps )
J'ai un autre projet go (dépôt séparé) que je souhaite utiliser app
子模块作为库导入,下面是go.mod
:
module xxxx go 1.18 require ( github.com/zhaoyi0113/test-go-module v0.0.3 // indirect )
J'ai alors le code suivant :
package main import ( "github.com/zhaoyi0113/test-go-module/apps/logger" ) func main() { logger.test() }
La compilation a échoué avec l'erreur suivante :
main.go:7:2: no required module provides package github.com/zhaoyi0113/test-go-module/apps/logger; to add it: go get github.com/zhaoyi0113/test-go-module/apps/logger
Comment importer des sous-modules à partir d'un projet multi-espaces de travail ?
Vous ne pouvez pas importer l'espace de travail.
La situation actuelle est la suivante :
github.com/zhaoyi0113/test-go-module/apps
有一个模块 声明其模块路径为 github.com/zhaoyi0113/test-go-module
。该模块不可用,因为该模块的实际路径与声明的路径不匹配(请注意其中一个路径中缺少 /apps
).
xxxx doit être dans le sous-répertoire github.com/zhaoyi0113/test-go-module
,但在该路径下没有找到模块。它位于 apps
, comme décrit dans le paragraphe précédent.
Il existe deux correctifs possibles selon l'endroit où vous souhaitez placer le module.
Si vous souhaitez conserver le go.mod importé dans le répertoire actuel, mettez à jour le chemin du module pour inclure apps
:
Go.mod du module d'importation :
module github.com/zhaoyi0113/test-go-module/apps go 1.19
go.mod pour importer des modules :
module xxxx go 1.18 require ( github.com/zhaoyi0113/test-go-module/apps v0.0.3 // indirect )
La seconde est aussi l'option régulière Mettez simplement go.mod dans le répertoire racine du projet et placez le fichier go.work en dehors du projet. Pour implémenter cela, déplacez go.mod à la racine du projet (car il figurait dans le commit d'origine) et déplacez go.work ailleurs. Aucune modification n'est requise pour les modules importés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!