"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je organiser un projet Go avec à la fois une bibliothèque et une CLI dans le même répertoire ?

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

Publié le 2024-12-23
Parcourir:720

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

Organisation du code dans des projets multi-packages

Dans les projets Go qui nécessitent à la fois une bibliothèque et une interface de ligne de commande (CLI), il est courant de rencontrer le problème d'avoir plusieurs packages dans le même répertoire.

Une telle structure de projet :

whatever.io/
    myproject/
        main.go
        myproject.go

Les packages main et func main sont essentiels pour lancer l'exécution dans Go, tandis qu'une bibliothèque nécessite un package séparé, tel que le package myproject. Cependant, lors de l'importation de ce projet, le compilateur Go peut objecter :

main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject

Solution : Packages imbriqués

Pour résoudre ce problème, placez les deux packages dans un nouveau dossier dans le même répertoire que main.go. N'oubliez pas de mettre à jour les instructions d'importation pour référencer le nouveau package à partir de votre $GOPATH.

Par exemple :

whatever.io/
    myproject/
        library/
            myproject.go
        main.go

Dans main.go, importez le package de bibliothèque comme suit :

import "../library/myproject"

Cette approche garantit une séparation claire entre les bibliothèque et CLI tout en permettant aux deux de résider dans le même répertoire.

Notes supplémentaires

  • Le déplacement des packages dans une structure imbriquée n'affecte pas la fonctionnalité de l'un ou l'autre package.
  • Les commandes go run and go build peuvent être utilisées pour tester et construire le projet.
  • Reportez-vous au lien fourni pour plus de détails sur les différences entre go build file.go et go build .
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3