Go项目目录管理

来源:互联网 发布:日语网络用语2017 编辑:程序博客网 时间:2024/06/05 14:30

官方地址:http://docs.studygolang.com/doc/code.html

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:

  • src 包含项目的源代码文件; 
  • pkg 包含编译后生成的包/库文件; 
  • bin 包含编译后生成的可执行文件。 
可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.7.5 windows/amd64)

目录结构如下:

E:\project\go\proj
└─<src>
    ├─<a>
    │  ├─<a1>
    │  │      a1.go
    │  │
    │  └─<a2>
    │          a2.go
    │
    ├─<b>
    │      b1.go
    │      b2.go
    │
    └─<c>
            c.go

其中,带<>的表示是目录,不带<>的表示是普通文件。

各文件代码:

a1.go:

package a1


import "fmt"


func PrintA1() {
fmt.Println("a/a1")
}

a2.go:

package a2


import "fmt"


func PrintA2() {
fmt.Println("a/a2")
}

b1.go:

package b


import "fmt"


func printB1() {
fmt.Println("b.b1")
}

b2.go:

package b


import "fmt"


func PrintB() {
printB1()
fmt.Println("b.b2")
}

c.go:

package main


import (
"a/a1"
"a/a2"
"b"
)


func main() {
a1.PrintA1()
a2.PrintA2()
b.PrintB()
}

执行如下命令:

go install a/a1

go install a/a2

go install b

go install c

可以看到,当前目录下多了以下几个文件:

E:\project\go\proj
├─
<bin>
│      c.exe

├─<pkg>
│  └─<windows_amd64>
│      │  b.a
│      │
│      └─<a>
│              a1.a
│              a2.a

└─<src>
    ├─<a>
    │  ├─<a1>
    │  │      a1.go
    │  │
    │  └─<a2>
    │          a2.go
    │
    ├─<b>
    │      b1.go
    │      b2.go
    │
    └─<c>
            c.go

其中,<bin>和<pkg>文件夹是自动生成的,a1.a、a2.a、b.a是生成的二进制包文件,c.exe就是最终的可执行文件。

运行下c.exe:

E:\project\go\proj>.\bin\c.exe
a/a1
a/a2
b.b1
b.b2

注意:package中的名称最好与目录名一样,这样在import的时候直接import目录名就好了。如果两者不一致,例如上面的b1.go、b2.go里面的package是package bbbbb,则在c.go里import的时候要import "b",然后下面的b.PrintB(),则需要改为bbbbb.PrintB()

0 0
原创粉丝点击