回答

收藏

组织多文件 Go 项目

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

组织 在开发过程中Go 项目的标准方法是什么?
" J1 x/ ]! }& i5 W6 k$ }$ L4 z我的项目是一个包mypack,所以我想我把所有的 .go 一个文件mypack目录中。
4 Q4 r6 R6 G9 @( F; u但是,我想在开发过程中测试一下,所以我至少需要一份声明main只有这样,我才能做到go run trypack.go3 n, l$ E" {2 |( W% e0 k
我该怎么组织这个?go install mypack每次想尝试都需要吗?) ]3 [2 M5 d- R  k) e
                                                               
$ R. R  q+ e) K# x3 Y    解决方案:                                                               
( h. N; q0 t  T, S! e2 D/ W6 [* }                                                                它记录了怎么做go build建设项目的友好方式,以及如何编写测试。测试不需要使用main包的 cmd 。它们可以简单地把  TestX 命名函数是每个包的一部分,然后go test发现它们。5 d7 {* U1 l, W1 q
随着 Go 1 发布,链接中推荐的结构在您的问题中有点过时。你不再需要了pkg在src. 只有 3个与规范相关的目录是 GOPATH 目录中的 3 : bin,pkg,src 。在 src 下面,您可以简单地放置您的项目mypack,下面是你所有的 .go 文件,包括 mypack_test.go4 l; _. P* q' a2 k4 h" h+ z% P
go build  然后构建到根级 pkg 和 bin 中。% y, q# L0 k- ^- S
所以你的 GOPATH 可能是这样的:
4 k& w0 R1 B+ D, x- r+ r* J7 V2 [
    ~/projects/    bin/    pkg/    src/       mypack/         foo.go        bar.go        mypack_test.goexport GOPATH=$HOME/projects$ go build mypack$ go test mypack
    7 f3 {0 f7 Y/ j7 a5 G. L- e
更新:从 >= Go 1.从11 开始,模块系统现在是工具的标准部分,GOPATH 概念即将过时。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则