(仅供自己记录学习)
1. 项目结构
.
├── cloud
│ └── cloud_service
│ ├── actions
│ ├── cloud-service-config.toml
│ ├── cmd
│ ├── lib
│ ├── main.go
│ ├── protocol
│ └── server
├── common
│ ├── device
│ ├── js
│ ├── models
├── fog
│ └── fog_service
│ ├── actions
│ ├── cmd
│ ├── fog-service-config.toml
│ ├── lib
│ ├── main.go
│ ├── protocol
│ └── server
└── fog2
└── fog_service
├── actions
├── cmd
├── common
├── fog2-service-config.toml
├── jiai
├── lib
├── main.go
├── protocol
└── server
2. 根据项目包名初始化
【初始化】1. go mod init
// 1.cd 到项目nurse层.xxx为项目包名,当前为(xxxx.com/nurse)
go mod init xxxx.com/nurse
【初始化】2.安装项目所需所有依赖
// 2.运行所有安装依赖
go mod tidy
【问题-01】
安装依赖时显示该项问题
go: cloud/cmd imports
gopkg.in/urfave/cli.v2: gopkg.in/urfave/cli.v2@v2.3.0: parsing
module declares its path as: github.com/urfave/cli/v2
but was required as: gopkg.in/urfave/cli.v2
解决方案:点击打开go.mod文件,在中加入
replace gopkg.in/urfave/cli.v2 v2.3.0 => github.com/urfave/cli/v2 v2.3.0
如下:
module ktcatv.com/nurse
replace gopkg.in/urfave/cli.v2 v2.3.0 => github.com/urfave/cli/v2 v2.3.0
go 1.16
然后,在输入
go mod tidy
安装所需依赖。
【问题-02】
在进行项目运行时,输入
go run main.go
会将当前文件中出现问题的内容报红,问题位置:
func newWithSeconds() *cron.Cron {
secondParser := cron.NewParser(cron.Second | cron.Minute |
cron.Hour | cron.Dom | cron.Month | cron.DowOptional | cron.Descriptor)
return cron.New(cron.WithParser(secondParser), cron.WithChain())
}
报错内容是:WithParser和WithChain提示未定义;造成的原因是,在安装所以依赖时,“github.com/robfig/cron”依赖版本较低为1.2.14。后重新安装该第三方依赖。
解决方案:
删除当前报错文件中的引用,修改为"github.com/robfig/cron/v3"。然后运行
go mod tidy
安装完成后,即解决该问题。
3. 项目第三方依赖明显
// 配置文件解析
github.com/BurntSushi/toml v1.0.0
// 数据校验
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d
// redis配置
github.com/garyburd/redigo v1.6.3
// 定时任务计划
github.com/robfig/cron/v3 v3.0.1
// mongoDB数据库
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
// 命令行工具cli
gopkg.in/urfave/cli.v2 v2.3.0
4. 项目运行
4.1 升级Go版本环境
在安装第三方依赖中有时需升级当本地Go版本环境,操作方式如下
【方式一】使用brew升级
// 查看go安装位置
where is go
// 升级
brew upgrade go
【方式二】下载安装包
配置Goland开发工具中GOROOT的路径,以及修改全局文件:bash_profile。操作如下:
// 修改之前配置的GOROOT
vim ~/.bash_profile
// 立即执行生效
source ~/.bash_profile
4.2 项目运行
点击mai n.go文件运行,在Go的配置文件下的bin目录下生成,项目包。将当前配置文件与项目结构放置在一起,可运行,并读取相关配置文件;
【运行】
./go_build_xxxx_com_nurse_cloud_cloud_service run -c config/cloud-service-config.toml
使用的是cli方式,当前不太熟悉参考学习一下这些文章:
cli 使用:https://www.cnblogs.com/feixiangmanon/p/11185239.html
cli使用:https://blog.csdn.net/weixin_39838758/article/details/113074252
cli使用:https://blog.csdn.net/zhonglinzhang/article/details/77188865
cli 使用:https://zhuanlan.zhihu.com/p/150396264
(项目运行部分还需修正,当前项目因为数据远程无法访问故项目运行起来,无法连接数据库)