首页 >后端开发 >Golang >如何在同一目录中组织一个库和 CLI 的 Go 项目?

如何在同一目录中组织一个库和 CLI 的 Go 项目?

Barbara Streisand
Barbara Streisand原创
2024-12-09 14:26:11144浏览

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

在多包项目中组织代码

在需要库和命令行界面 (CLI) 的 Go 项目中,经常会遇到以下问题在同一目录中有多个包。

一个这样的项目结构:

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

包 main 和 func main 对于在 Go 中启动执行至关重要,而库需要单独的包,例如包 myproject。但是,在导入此项目时,Go 编译器可能会反对:

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

解决方案:嵌套包

要解决此问题,请将这两个包放在与 main 相同的目录中的新文件夹中。去。请记得更新 import 语句以引用 $GOPATH 中的新包。

例如:

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

在 main.go 中,按如下方式导入库包:

import "../library/myproject"

这种方法确保了库和 CLI 之间的明确分离,同时允许两者驻留在同一目录中。

其他注意

  • 将包移动到嵌套结构中不会影响任何一个包的功能。
  • go run 和 go build 命令可用于测试和构建项目。
  • 有关 go build file.go 和 go build 之间差异的更多详细信息,请参阅提供的链接。

以上是如何在同一目录中组织一个库和 CLI 的 Go 项目?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn