Maison >développement back-end >Golang >Comment puis-je structurer un projet Go avec à la fois une bibliothèque et une CLI dans le même répertoire ?

Comment puis-je structurer un projet Go avec à la fois une bibliothèque et une CLI dans le même répertoire ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-01 14:00:14343parcourir

How Can I Structure a Go Project with Both a Library and a CLI in the Same Directory?

Structure de répertoires multi-packages dans Go

Lors du développement d'un projet Go, il peut être nécessaire de combiner une bibliothèque et une ligne de commande interface (CLI) dans le même répertoire. Cependant, il n'est pas possible d'avoir deux packages portant le même nom dans le même répertoire, entraînant une erreur de compilation.

Solution : Packages imbriqués

Pour résoudre ce problème problème, vous pouvez créer un nouveau dossier dans le même répertoire pour héberger les packages. En déplaçant la bibliothèque ou le package CLI dans ce nouveau dossier, vous pouvez efficacement imbriquer les packages.

Par exemple, considérez la structure de répertoires suivante :

whatever.io/
    myproject/
        main.go
        lib/
            myproject.go
        cli/
            main.go

Dans cette structure, le Le dossier lib contient le package bibliothèque (myproject) et le dossier cli contient le package CLI (main). Le fichier main.go dans le répertoire racine sert de point d'entrée pour l'application CLI.

Pour importer le package de bibliothèque dans votre code, vous utiliserez l'instruction d'importation suivante :

import "whatever.io/myproject/lib/myproject"

N'oubliez pas de définir la variable d'environnement $GOPATH sur le répertoire parent des packages imbriqués. Cela permet au compilateur de résoudre correctement les chemins d'importation.

Avantages des packages imbriqués

L'utilisation de packages imbriqués offre plusieurs avantages :

  • Organisation modulaire : Garder la bibliothèque et les packages CLI séparés garantit un projet propre et organisé structure.
  • Compilation indépendante : Différentes équipes peuvent travailler indépendamment sur la bibliothèque et la CLI, minimisant ainsi les dépendances et les conflits potentiels.
  • Réutilisabilité : La bibliothèque peut être facilement réutilisé dans d'autres projets sans avoir besoin de configuration supplémentaire.

En résumé, même si ce n'est pas le cas Il est possible d'avoir deux packages dans le même répertoire avec le même nom, vous pouvez obtenir des fonctionnalités similaires en imbriquant les packages dans un nouveau dossier. Cette approche apporte flexibilité et modularité à vos projets Go.

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