{"id":16439294,"url":"https://github.com/lanux/goodjob","last_synced_at":"2025-10-27T03:31:02.645Z","repository":{"id":57484383,"uuid":"177077682","full_name":"lanux/goodjob","owner":"lanux","description":"项目管理平台","archived":false,"fork":false,"pushed_at":"2019-07-16T11:48:06.000Z","size":384,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T01:41:26.451Z","etag":null,"topics":["go","golang","mysql"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-22T05:35:52.000Z","updated_at":"2023-01-11T07:46:09.000Z","dependencies_parsed_at":"2022-08-26T13:23:13.361Z","dependency_job_id":null,"html_url":"https://github.com/lanux/goodjob","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanux%2Fgoodjob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanux%2Fgoodjob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanux%2Fgoodjob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanux%2Fgoodjob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanux","download_url":"https://codeload.github.com/lanux/goodjob/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238431530,"owners_count":19471405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","mysql"],"created_at":"2024-10-11T09:08:48.982Z","updated_at":"2025-10-27T03:30:57.341Z","avatar_url":"https://github.com/lanux.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoodJob\n### 项目管理平台\n开发一个任务看板，统计工时，汇总周报\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n---\n\n## 开始项目\n\n### GOROOT\ngolang安装路径,相当于java语言的`JAVA_HOME`\n\n### GOPATH\n工作目录，允许设置多个路径，但下载的包只存在第一个路径。和各个系统环境多路径设置一样，windows用`;`，linux（mac）用`:`分隔。\n我们可以把每个GOPATH下的bin都加入到PATH中。\n\n\n##### Linux系统\n```\nexport GOROOT=$HOME/go\nexport GOPATH=$HOME/gopath\nexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin\n```\n\n##### window系统\n```bash\nGOROOT=D:\\go\nGOPATH=D:\\GoWorkSpace\nPATH=%GOROOT%\\bin;%GOPATH%\\bin;...  # “...”表示其他路径\n```\n\n整个工作空间目录结构如下：\n```\nGoWorkSpace     // GoWorkSpace为GOPATH目录\n  -- bin  // golang编译可执行文件存放路径，可自动生成。\n  -- pkg  // golang编译的.a中间文件存放路径，可自动生成。\n  -- src  // 源码路径。按照golang默认约定，go run，go install等命令的当前工作路径（即在此路径下执行上述命令）。\n     -- common 1\n     -- common 2\n     -- common utils ...\n     -- myApp1     // project1\n        -- models\n        -- controllers\n        -- others\n        -- main.go\n     -- myApp2     // project2\n        -- models\n        -- controllers\n        -- others\n        -- main.go\n     -- myApp3     // project3\n        -- models\n        -- controllers\n        -- others\n        -- main.go\n```\n\n\u003e 注意不要把src目录和java项目的src目录混淆，误认为GoWorkSpace就是具体项目的根目录。\n\u003eidea开发工具open项目选择myApp目录，非GoWorkSpace目录\n\n\n#### 项目运行\ngolang工程的依赖包经常使用go get命令来获取，例如：`go get github.com/kardianos/govendor` ，会将依赖包下载到GOPATH的路径下。\n```\ngo get -u -v github.com/kardianos/govendor\n```\n\n\n\n常见的命令如下，格式为 `govendor COMMAND`。\n\n| 命令 | 功能 | \n| :------------ :|:---------------| \n|init\t|初始化 vendor 目录|\n|list\t|列出所有的依赖包|\n|add\t|添加包到 vendor 目录，如 `govendor add +external` 添加所有外部包`add PKG_PATH`添加指定的依赖包到 vendor 目录|\n|update\t|从 $GOPATH 更新依赖包到 vendor 目录|\n|remove\t|从 vendor 管理中删除依赖|\n|status\t|列出所有缺失、过期和修改过的包|\n|fetch\t|添加或更新包到本地 vendor 目录|\n|sync\t|本地存在 vendor.json 时候拉去依赖包，匹配所记录的版本|\n|get \t|类似 go get 目录，拉取依赖包到 vendor 目录|\n\n对于 govendor 来说，依赖包主要有以下多种类型:\n\n|状态|缩写状态|含义|\n|------------|------------|------------|\n|+local|l|本地包，即项目自身的包组织|\n|+external|e|外部包，即被 $GOPATH 管理，但不在 vendor 目录下|\n|+vendor|v|已被 govendor 管理，即在 vendor 目录下|\n|+std|s|标准库中的包|\n|+unused|u|未使用的包，即包在 vendor 目录下，但项目并没有用到|\n|+missing|m|代码引用了依赖包，但该包并没有找到|\n|+program|p|主程序包，意味着可以编译为执行文件|\n|+outside| |外部包和缺失的包|\n|+all| |所有的包|\n\n常用指令说明\n\n```shell\n# 安装govendor\ngo get -u -v github.com/kardianos/govendor\n\n#将GOPATH中本工程使用到的依赖包自动移动到vendor目录中\n#说明：如果本地GOPATH没有依赖包，先go get相应的依赖包\ngovendor add +external\n或使用缩写： \ngovendor add +e \n\n# 查看使用的包列表\ngovendor list -v fmt\n\n# 从线上远端库添加或更新最新的依赖包\ngovendor fetch golang.org/x/net/context\n\n# 从线上远端库添加或更新标签或分支等于v1的依赖包\ngovendor fetch golang.org/x/net/context@=v1\n```\n\n\n```shell\ndocker run --name mysql-8.0 \\\n-e MYSQL_ROOT_PASSWORD=root \\\n-p 3308:3306 \\\n-v /apps/data/mysql/conf-8.0:/etc/mysql/conf.d \\\n-v /apps/data/mysql/data-8.0:/var/lib/mysql -d mysql:8.0 \\\n--character-set-server=utf8mb4 \\\n--collation-server=utf8mb4_unicode_ci\n\n\nalter user'root'@'%' IDENTIFIED BY 'root'; \nflush privileges;\n\nALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; \nALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';\nFLUSH PRIVILEGES;\n```\n\n\n### 设置本地环境\n\n```\nset GO111MODULE=on\ngo mod tidy\n```\n\n### 打包可执行程序\n\n（一）Windows 下编译Linux 64位可执行程序：\n```\n    SET CGO_ENABLED=0  //不设置也可以，原因不明\n    SET GOOS=linux\n    SET GOARCH=amd64\n    通过 go env 查看设置是否成功。\n```\n\n（二）Linux 下编译Windows可执行程序：\n```\n    export CGO_ENABLED=0\n    export GOOS=windows\n    export GOARCH=amd64\n    通过 go env 查看设置是否成功。\n    go build hello.go\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanux%2Fgoodjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanux%2Fgoodjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanux%2Fgoodjob/lists"}