Maison > développement back-end > Golang > Comment importer un espace de travail en tant que dépendance dans un autre référentiel go ?

Comment importer un espace de travail en tant que dépendance dans un autre référentiel go ?

王林
Libérer: 2024-02-09 08:33:20
avant
638 Les gens l'ont consulté

如何将工作区作为依赖项导入到另一个 go 存储库中?

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.

Contenu de la question

J'ai un projet multi-espaces de travail, la structure est :

apps/go.mod
go.work
Copier après la connexion

Ce projet contient un sous-module apps 及其 go.work Le fichier contient :

go 1.180
use (
./apps
)
Copier après la connexion

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
)
Copier après la connexion

J'ai alors le code suivant :

package main

import (
    "github.com/zhaoyi0113/test-go-module/apps/logger"
)

func main() {
    logger.test()
}
Copier après la connexion

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
Copier après la connexion

Comment importer des sous-modules à partir d'un projet multi-espaces de travail ?

Solution de contournement

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).

Le module

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
Copier après la connexion

go.mod pour importer des modules :

module xxxx
go 1.18
require (
    github.com/zhaoyi0113/test-go-module/apps v0.0.3 // indirect
)
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal