首页 > 其他分享 >go开发环境

go开发环境

时间:2023-08-25 12:14:47浏览次数:38  
标签:GOPATH 依赖 package 环境 开发 env go mod

目录

Go环境

环境下载安装

# 下载地址:https://golang.google.cn/dl/
windows:
	go1.20.5.windows-amd64.msi:安装版 安装流程中可添加环境变量全局使用
	go1.20.5.windows-amd64.zip: 免安装 解压即可用 全局使用需添加环境变量
Linux:
	1. 下载
	wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz
	2. 解压到指定目录
	tar -C /usr/local -zxvf go1.21.0.linux-amd64.tar.gz
	3. 添加环境变量
	vim ~/.bash_profile 或者 vim /etc/profile
		export GOROOT=/usr/local/go
		export PATH=$PATH:$GOROOT/bin
	source ~/.bash_profile 或者 source /etc/profile
	或者
	echo "export GOROOT=/usr/local/go\nexport PATH=$PATH:$GOROOT/bin" >> ~/.bash_profile && source ~/.bash_profile
	
	4. 验证
	go version


常规命令

1. 查看go版本
go version

2. 查看配置项
go env 
	-json:json形式输出(可选)

3. 修改配置项
3.1 go依赖管理库(决定项目依赖管理是用go Modules模式或GOPATH模式)
go env -w GO111MODULE=on 
	on: go忽略$GOPATH和vendor文件夹 根据go.mod管理依赖
	off: go从$GOPATH和vendor文件夹寻找依赖
    auto: 根据$GOPATH/src外根目录是否存在go.mod 开启或关闭
3.2 go依赖下载源
go env -w GOPROXY=https://goproxy.cn,direct
3.3 go项目工作目录(go.1.11版本后有module、可通过go.mod管理特定项目的依赖)
go env -w GOPATH=
3.4 go项目构建过程中的缓存存储目录(go build xx.go->xx.exe)
go env -w GOCACHE=
3.5 存储go环境变量的配置文件(不建议修改)
go env GOENV 
3.6 go的安装目录(不建议修改)
go env GOROOT
3.7 恢复配置项默认值
go env -u GOROOT
3.8 单元测试(需要切换目录到源码内包含以Test开头的函数名的*_test.go文件)
go test 

4. 下载依赖
go get xxx/package@latest: 最新版本
go get xxx/package@master: master最新commit版本
go get xxx/package@v1:tag为v1的commit版本
go get xxx/package@1234be: hash值为1234be的commit版本
go get xxx/package/v1: 指定版本
go get -u : 更新版本

5. 查看依赖可下载版本
go list -m -versions xxx/package

6. 网络代理临时方案(配置后再下载依赖 只对当前控制台有效)
set http_proxy=http://ip:port
set https_proxy=http://ip:port

goModule命令

1. 初始化module(生成go.mod) 
go mod init <moduleName>
2. 下载依赖到本地($GOPATH/pkg/mod和$GOPATH/pkg/sum)
go mod download
3. 编辑go.mod
go mod edit 
	-json
	-require
	-exclude
4. 文本模式输出模块下依赖
go mod graph
5. 同步当前正在使用的依赖(删除异常或不使用的依赖)
go mod tidy
6. 验证依赖
go mod verify
7. 清除当前项目所有依赖($GOPATH/pkg/mod下的依赖-谨慎操作)
go clean -modcache

ps:
go module 安装依赖的原则是先拉最新的release tag 
若无tag则拉最新的commit 
go 会自动生成一个 go.sum 文件来记录 dependency tree和对应的hash值
go.mod: 依赖管理文件
	提供module require replace exclude四个命令
	module: 指定包名
	require: 指定依赖项
	replace: 替换依赖项
	exclude: 忽略依赖项
go.sum: 记录依赖的版本和hash值

go实例

package main

import (
	"fmt"
)

func main() {
	fmt.Println("hello go...")
}

标签:GOPATH,依赖,package,环境,开发,env,go,mod
From: https://www.cnblogs.com/fsh19991001/p/17656588.html

相关文章

  • #2023盲盒+码# OpenHarmony应用ArkUI 状态管理开发范例
    OpenHarmony应用ArkUI状态管理开发范例【本文正在参加2023「盲盒」+码有奖征文活动】https://ost.51cto.com/posts/25284OpenHarmony应用ArkUI状态管理开发范例本文根据橘子购物应用,实现ArkUI中的状态管理。在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模......
  • iOS开发Swift-函数
    1.函数的定义和调用funcgreet(person:String)->String{//函数名传入值传入值类型返回值类型letgreeting="Hello"+personreturngreeting}print(greet(person:"Anna"))//调用2.函数的参数与返回值 (1)无参函数funcsayHello()->......
  • php mongodb操作类,适合mongodb2.x和mongodb3.x
    在别人基础上修改的mongodb操作类,适合mongodb2.x和mongodb3.x<?php/***Mongodb类**examples:*$mongo=newHMongodb("127.0.0.1:11223");*$mongo->selectDb("test_db");*创建索引*$mongo->ensureIndex("test_table",array(&q......
  • vue-cli4 配置不同开发环境打包命令
    #......
  • 基于java极速WEB+ORM 框架:jfinal2.0开发的通用后台管理系统及源码
    final2-common-admin1、基于java极速web开发框架:jfinal2.0开发的通用后台管理系统,包括完整的登录、注册、菜谱管理、厨师管理、餐厅管理等功能2、开发时是基于jdk1.8、tomcat7.0,utf8编码3、运行时请修改配置文件:a_little_config.txt及相应的运行环境:JavaBuildPath、TargetedR......
  • LangChain-Chatchat学习资料-Windows开发部署
    在windows10下的安装部署参考资料1.LacnChain-Chatchat项目基础环境准备本人使用的是Windows10专业版22H2版本,已经安装了Python3.10,CUDA11.8版本,miniconda3。硬件采用联想R9000P,AMDR75800H,16G内存,RTX30606G。安装依赖#使用conda安装激活环境condacreate-nLangchain......
  • 三河凡科科技飞讯教学篇:红外成像仪开发难点的兼容性问题
    三河凡科科技飞讯教学篇:红外成像仪开发难点的兼容性问题红外成像技术是一种用于对物体表面进行无接触式测量得先进技术。它是基于物体与环境之间的热辐射,通过测量这种热辐射来实现对物体的成像。红外成像技术已经成为现代科技领域中一个不可或缺的工具,广泛应用于军事、医疗、安防......
  • 如何在leangoo免费敏捷工具中批量设置成员权限
    ​Leangoo领歌是一款永久免费的专业敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。包括小型团队敏捷开发,规模化敏捷SAFe,ScrumofScrums大规模敏捷。其功能/解决问题的价值包括:1)能够支持多种场景,如:敏捷研发管理......
  • 创建第一个Django app-part5
    自动化测试开始第一个测试首先有一个bugpython3manage.pyshell创建一个测试来暴露这个bug将下面的代码写入polls应用里的tests.py文件内点击查看代码fromdjango.testimportTestCase#Createyourtestshere.importdatetimefromdjango.utilsimporttim......
  • 如何基于 Kubernetes 实现优质开发者平台体验?
    内部开发者平台(或IDP)是使开发团队能够更快、更轻松、更一致地交付应用程序的基础设施。Kubernetes本身是一个功能强大的平台,但它引入了太多复杂性和功能,因此不能简单地将其作为IDP交给开发团队。若要期望他们能取得成功,非常重要的一点是要设置一些防护措施,使他们能够有效地使......