回答

收藏

组织多文件 Go 项目

技术问答 技术问答 240 人阅读 | 0 人回复 | 2023-09-12

组织 在开发过程中Go 项目的标准方法是什么?3 e/ U; J1 m9 H( v0 F, E# Y
我的项目是一个包mypack,所以我想我把所有的 .go 一个文件mypack目录中。
" X; ]4 N1 a4 L) n但是,我想在开发过程中测试一下,所以我至少需要一份声明main只有这样,我才能做到go run trypack.go" D# y1 n' T& D3 o# F% R
我该怎么组织这个?go install mypack每次想尝试都需要吗?
- ^0 O% l+ }7 W. b                                                                # m* Q6 N0 b9 D
    解决方案:                                                                ( t' q+ O- Y) j) y- j
                                                                它记录了怎么做go build建设项目的友好方式,以及如何编写测试。测试不需要使用main包的 cmd 。它们可以简单地把  TestX 命名函数是每个包的一部分,然后go test发现它们。
) s! ^' r- G" e随着 Go 1 发布,链接中推荐的结构在您的问题中有点过时。你不再需要了pkg在src. 只有 3个与规范相关的目录是 GOPATH 目录中的 3 : bin,pkg,src 。在 src 下面,您可以简单地放置您的项目mypack,下面是你所有的 .go 文件,包括 mypack_test.go( Y  y% z$ k. W' o1 B4 \
go build  然后构建到根级 pkg 和 bin 中。
2 x2 @! Q, B9 g( R6 N* D% D所以你的 GOPATH 可能是这样的:) g- o+ F8 w7 C" i" Q3 Y
    ~/projects/    bin/    pkg/    src/       mypack/         foo.go        bar.go        mypack_test.goexport GOPATH=$HOME/projects$ go build mypack$ go test mypack2 r; A# l0 a& S9 H: \
更新:从 >= Go 1.从11 开始,模块系统现在是工具的标准部分,GOPATH 概念即将过时。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则