Maison >développement back-end >Golang >Comment puis-je accéder aux packages locaux dans les modules Go ?

Comment puis-je accéder aux packages locaux dans les modules Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-24 11:23:11255parcourir

How Can I Access Local Packages in Go Modules?

Accès aux packages locaux dans les modules Go (Go 1.11)

Lorsque vous travaillez avec des modules Go, accéder aux packages locaux en dehors de votre gopath peut être difficile. Considérez la structure de projet suivante :

/
  - /platform
      - platform.go
  - main.go
  - go.mod

Avec cette configuration, l'importation du package de plateforme dans main.go entraînerait une erreur indiquant que le module de plateforme est introuvable.

Pour résoudre ce problème , plusieurs approches peuvent être employées. Une méthode consiste à garantir que les deux packages résident dans le même module. Pour ce faire, ajoutez simplement ce qui suit à go.mod :

module github.com/userName/moduleName

Dans main.go, vous pouvez ensuite importer le package de la plateforme en utilisant :

import "github.com/userName/moduleName/platform"

Cependant, si les packages sont physiquement dans des modules séparés, vous pouvez toujours importer des packages locaux en utilisant la directive replace dans le fichier go.mod du module principal.

module github.com/userName/mainModule

require "github.com/userName/otherModule" v0.0.0
replace "github.com/userName/otherModule" v0.0.0 => "local physical path to the otherModule"

Dans main.go, vous pouvez importez maintenant le package de plateforme depuis le module otherModule :

import "github.com/userName/otherModule/platform"

N'oubliez pas que le chemin dans la directive replace doit pointer vers le répertoire racine du module à remplacer.

Pour une compréhension complète de Go modules, référez-vous à la ressource suivante :

  • [Go Modules](https://go.dev/blog/modules)

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!

Déclaration:
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