go入门——项目搭建
时间:2020-07-14
本文章向大家介绍go入门——项目搭建,主要包括go入门——项目搭建使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、go环境搭建
//进入下载目录 cd /home/dont/Download //下载go语言包 wget https://dl.google.com/go/go1.14.3.linux-amd64.tar.gz //解压至root权限下usr/locat目录下 sudo tar xfz go1.14.3.linux-amd64.tar.gz -C /usr/local //配置全局变量 sudo vi /etc/profile export GOROOT=/usr/local/go //设置为你自己的go安装目录 export GOPATH=/home/liyuan02/go // 设置为自己的go项目的工作区间 ----- 使用go mod一般为空,安装godoc时需要设置一个路径 export PATH=$GOROOT/bin:$PATH //原路径后用冒号连接新路径 //使配置立即生效 source /etc/profile //验证成功 go version go version go1.13.11 linux/amd64
二、使用GO Modules工具进行项目开发
1.目录设置
C:\Go <<--- GOROOT 指向的位置 --src <<--- Go 语言自带的源代码 --pkg <<--- 编译的中间文件放在此文件夹 --bin <<--- 编译的目标文件放在此文件夹 D:\MyWorks <<--- GOPATH 指向的位置 --src <<--- 项目源代码放置在此文件夹。!!!警告:一个常犯的错误是把 GOPATH 指向此处!!! --HelloWorld <<--- 我们项目源代码所在的文件夹。!!!警告:一个常犯的错误是把 GOPATH 指向此处!!! --vendor <<--- 第三方开源代码文件夹 --github.com --... --pkg <<--- 编译的中间文件放在此文件夹,Go编译器自动生成此文件夹 --bin <<--- 编译的目标文件放在此文件夹,Go编译器自动生成此文件夹
2.GO Modules配置
//设置变量参数 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct //查看变量设置情况 go env GO111MODULE="on" GOPROXY="https://goproxy.cn,direct"
3.GO Modules操作命令
//go mod操作命令 go get -u //更新现有的依赖 go mod tidy //整理模块(拉取缺少的模块,移除不用的模块) go mod download//下载依赖包 go mod graph //打印现有依赖结构 go mod vendor //将依赖复制到vendor下 go mod verify //校验依赖
三、使用GO Modeles开发一个项目
1.目录结构
//创建一个Go的项目目录 sdsec_go //项目目录名称 |---test //项目内的子目录 |---hello_word.go //Go文件 // 使用Go Modules后,项目目录 sdsec_go // 项目目录名称 |---test //项目内的子目录 |---hello_word.go //Go文件 |---vendor // Go扩展包的存放目录 |---github.com // Go扩展包的下载来源 --- 来自github.com网站 |---golang.org // Go扩展包的下载来源 --- 来自golang.org网站 |---x |---sys // Go扩展包 --- sys扩展包 |---go.mod // Go Module,自动生成。在go.mod中被require的Go的扩展包,才会被自动下载到vendor目录中。 |---go.sum // Go Module,自动生成。 // 执行命令的顺序 1、先进入项目目录。 2、执行go mod init xxx("xxx"自已定义,可以是项目名称,或是其它文字)。会自动生成go.mod文件。 3、对某个Go文件,进行go build。例如:go build test/hello_word.go(会将hello_word.go中import引入进来的扩展包的信息,自动写入go.mod)。
package main import "fmt" func main(){ fmt.Println("hello,world") }
2.执行操作
//mod初始化 ----- 自动生成go.mod和go.sum文件。这两个文件中的内容,都是自动生成,不需要手工修改。 go mod init 项目目录 //整理模块(拉取缺少的模块,移除不用的模块) ----- 自动修改go.mod和go.sum文件中的内容。 go mod tidy //将依赖复制到vendor目录下 ----- 自动创建vendor目录,并根据go.mod中Require的依赖列表,将依赖的组件包,复制到与go.mod同级的vendor目录中。 go mod vendor //创建deploy目录用于存储生成的可执行文件 go build -o ./deploy/hell_word ./test/hello_world.go //执行 ./hello_world
原文地址:https://www.cnblogs.com/single-dont/p/13297394.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 「MoreThanJava」Day 4:面向对象基础
- RTSP协议视频平台EasyNVR接入EasyNVS通道不显示任何数据怎么处理?
- RTSP协议视频平台EasyNVR接入视频综合管理平台EasyNVS可以自由修改配置吗?
- 使用Azure人脸API对图片进行人脸识别
- 视频综合管理平台EasyNVS显示的rtsp和rtmp穿透地址错误如何解决?
- 开发RTSP协议视频平台EasyNVR采用ffmpeg集成fdk-aac报no member named “encoderDelay”
- 微信小程序开发实战(17):用画布画一张笑脸
- PHP中Session ID的实现原理分析和实例解析
- 【好文推荐】黑莓OS手册是如何详细阐述底层的进程和线程模型的?
- 简析Spark Streaming/Flink的Kafka动态感知
- 微信小程序开发实战(19):页面导航
- Kotlin:02-函数的声明
- 「MoreThanJava」Day 5:面向对象进阶—继承详解
- 要点1:指针、数组和复合字面量
- akka-typed(9) - 业务分片、整合,谈谈lagom, 需要吗?