Skip to content

lanux/goodjob

Repository files navigation

GoodJob

项目管理平台

开发一个任务看板,统计工时,汇总周报


开始项目

GOROOT

golang安装路径,相当于java语言的JAVA_HOME

GOPATH

工作目录,允许设置多个路径,但下载的包只存在第一个路径。和各个系统环境多路径设置一样,windows用;,linux(mac)用:分隔。 我们可以把每个GOPATH下的bin都加入到PATH中。

Linux系统
export GOROOT=$HOME/go export GOPATH=$HOME/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 
window系统
GOROOT=D:\go GOPATH=D:\GoWorkSpace PATH=%GOROOT%\bin;%GOPATH%\bin;... # “...”表示其他路径

整个工作空间目录结构如下:

GoWorkSpace // GoWorkSpace为GOPATH目录 -- bin // golang编译可执行文件存放路径,可自动生成。 -- pkg // golang编译的.a中间文件存放路径,可自动生成。 -- src // 源码路径。按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。 -- common 1 -- common 2 -- common utils ... -- myApp1 // project1 -- models -- controllers -- others -- main.go -- myApp2 // project2 -- models -- controllers -- others -- main.go -- myApp3 // project3 -- models -- controllers -- others -- main.go 

注意不要把src目录和java项目的src目录混淆,误认为GoWorkSpace就是具体项目的根目录。 idea开发工具open项目选择myApp目录,非GoWorkSpace目录

项目运行

golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。

go get -u -v github.com/kardianos/govendor 

常见的命令如下,格式为 govendor COMMAND

| 命令 | 功能 | | :------------ :|:---------------| |init |初始化 vendor 目录| |list |列出所有的依赖包| |add |添加包到 vendor 目录,如 govendor add +external 添加所有外部包add PKG_PATH添加指定的依赖包到 vendor 目录| |update |从 $GOPATH 更新依赖包到 vendor 目录| |remove |从 vendor 管理中删除依赖| |status |列出所有缺失、过期和修改过的包| |fetch |添加或更新包到本地 vendor 目录| |sync |本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本| |get |类似 go get 目录,拉取依赖包到 vendor 目录|

对于 govendor 来说,依赖包主要有以下多种类型:

状态缩写状态含义
+locall本地包,即项目自身的包组织
+externale外部包,即被 $GOPATH 管理,但不在 vendor 目录下
+vendorv已被 govendor 管理,即在 vendor 目录下
+stds标准库中的包
+unusedu未使用的包,即包在 vendor 目录下,但项目并没有用到
+missingm代码引用了依赖包,但该包并没有找到
+programp主程序包,意味着可以编译为执行文件
+outside外部包和缺失的包
+all所有的包

常用指令说明

# 安装govendor go get -u -v github.com/kardianos/govendor #将GOPATH中本工程使用到的依赖包自动移动到vendor目录中#说明:如果本地GOPATH没有依赖包,先go get相应的依赖包 govendor add +external 或使用缩写: govendor add +e # 查看使用的包列表 govendor list -v fmt # 从线上远端库添加或更新最新的依赖包 govendor fetch golang.org/x/net/context # 从线上远端库添加或更新标签或分支等于v1的依赖包 govendor fetch golang.org/x/net/context@=v1
docker run --name mysql-8.0 \ -e MYSQL_ROOT_PASSWORD=root \ -p 3308:3306 \ -v /apps/data/mysql/conf-8.0:/etc/mysql/conf.d \ -v /apps/data/mysql/data-8.0:/var/lib/mysql -d mysql:8.0 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci alter user'root'@'%' IDENTIFIED BY 'root'; flush privileges; ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;

设置本地环境

set GO111MODULE=on go mod tidy 

打包可执行程序

(一)Windows 下编译Linux 64位可执行程序:

 SET CGO_ENABLED=0 //不设置也可以,原因不明 SET GOOS=linux SET GOARCH=amd64 通过 go env 查看设置是否成功。 

(二)Linux 下编译Windows可执行程序:

 export CGO_ENABLED=0 export GOOS=windows export GOARCH=amd64 通过 go env 查看设置是否成功。 go build hello.go 

About

项目管理平台

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages