Go 语言项目管理

来源:互联网 发布:凸优化求解算法 编辑:程序博客网 时间:2024/06/05 15:32

Go 作为自带项目管理的编程语言,及其方便。

目录结构

通常, 一个Go语言项目 ( 假设这个项目的根目录是 GoProjectRoot )的目录是这样的 :

一级目录

 GoProjectRoot/src    #包含项目的源代码文件; GoProjectRoot/pkg    #包含编译后生成的包/库文件; GoProjectRoot/bin    #包含编译后生成的可执行文件。

其中src目录需要我们自己创建, 其余的两个目录都是在执行 go install 的时候自动生产的。

二级目录

在src目录下面的, 是我们本项目的全部源码, 一般按照不同的模块分别放置 : 

<GoProjectRoot>     |--<src>          |--<module1>                 |--mudule1.go          |--<module2>                 |--module2.go          |--<main>                 |--main.go

编译执行

GOPATH & GOROOT

不同于Makefile 或者 Cmake , 我们可以在任意的路径执行我们的 go install 命令, 这就需要Go编译器知道去哪里查找需要的包。 这个过程依赖的是GOPATHGOROOT 连个变量。
由于有些命令会默认在GOPATH第一个目录下执行,所以如果有多个下面项目的话,最好独立设置一个公共的目录作为第一目录。并不添加任何自己的项目代码,仅仅作为三方包目录。
Go先是从GOROOT中查找包,如果没找到就从GOPATH“`中查找,结果都没有找到,我们可以使用go env输出Go的环境变量设置。

go run

含义

执行这个go文件。 听上去像是执行一个脚本, 用着也几乎和执行脚本一样。
但是、、、 Go语言是编译语言!!!
这个命令一定是编译生产临时执行文件,执行临时执行文件,删除临时执行文件 。

命令格式 :

go run xxx.go

作用 :

  • 执行这个xxx.go , 打印输出 。

go get xxx

检测目标包是否存在, 如果不存在,下载到 GOPATH第一个目录下。

go build

含义

编译这个Go文件。 如果没有参数,则在当前目录下查找main

命令格式 :

go build xxx.go
go build -o NameYouNeed xxx.go

作用

在当前目录生产执行文件, 如果没有-o 参数 ,则可执行文件同.go后缀之前的名字的同名。

go install

含义

编译生产安装整个模块。

命令格式

go install xxx
注意 : xxx 是我们的模块的名字。
####作用

  • 如果这个模块的packet是main, 那么生产可执行文件。 放置在一级目录 bin下 , 名字同模块名字同名。
  • 如果这个模块不是main模块,那么编译生产xxx.a文件 。放置在一级目录pkt下。
  • 所有模块依赖的本项目模块都会被编译成对应的.a文件。放置在一级目录pkt下。

优势 :

go install 可以在任意路径执行。

go clean

清楚当前项目的各种目标文件

go list

go test

执行对应项目的测试代码

1 0
原创粉丝点击