go开发 modules 的使用和代理

初学go语言,一堆 来自谷歌的包如

import (

"code.google.com/xxx" 

)

不翻墙是很难下载下来的。

另外还有麻烦的 gopath 需要去管理。

但是自从go 1.1.1 开始,新增了 modules 工具,可以让我们像开发 node 的时候,使用 npm 一样的方便。

一、设置代理 

linux设置如下:

export GOPROXY=http://xxxx

  

windows设置:

在环境变量里面,新增一栏名称为:

GOPROXY:http://xxxx

 

其中,http://xxxx为代理的地址

常见的代理地址列表:

阿里: https://mirrors.aliyun.com/goproxy/

官方: https://goproxy.io/

中国:https://goproxy.cn

其他:https://gocenter.io

golang 下载:

https://gomirrors.org/

https://golang.google.cn/dl/

  

二、配置后查看


配置完成,输入 go env 可以查看配置,注意windows需要重新打开 CMD。linux 需要更新配置

三、使用

在空文件夹下面,或者已经存在的项目下面。(可以不需要 build、bin、src 等文件)

执行初始:

go mod init  xxxx      //xxx为模块导入路径

  

再执行下面命令,会自动寻找依赖,加入

go mod tidy

  

四、go  modules常用命令

go mod init:创建一个新模块,初始化 go.mod 文件,参数为该模块的导入路径,推荐使用这种形式。如:go mod init github.com/linehk/example。
go get:更改依赖项版本(或添加新的依赖项)。
go build、go test 等命令:Go 命令行工具会根据需要添加新的依赖项。如:go test ./...,测试当前模块。
go list -m all:打印当前模块依赖。
go mod tidy:移除无用依赖。
go list -m -versions github.com/gin-gonic/gin:列出该模块的所有版本。
go mod verify:验证哈希。

 

五、在 beego框架中使用 modules

首先安装 beego
 go get -u github.com/astaxie/beego
go get -u github.com/beego/bee

想要快速建立一个应用来检测安装?

linux

$ cd $GOPATH/src
$ bee new hello
$ cd hello
$ bee run

  

windows

>cd %GOPATH%/src
>bee new hello
>cd hello
>bee run

  

如果错误,可能是需要配置环境变量,windows下面,安装完成,在 gopath -> bin下面有一个bee.exe文件,需要配置到 path的环境变量里面

此时在 GOPATH 的文件夹 src目录下面,可以看见bee创建的项目

可以将整个项目拷贝出来,脱离 gopth使用。只需要在目录执行:

go mod init hello
go mod tidy

  

 

go开发 modules 的使用和代理的更多相关文章

  1. 浅谈iOS开发的协议(protocol)和代理(delegate)

    协议和代理对于一个新手来说确实不讨好理解,也有很多的iOS开发的老手对此是懂非懂的.网上的很多博文只是讲了怎么使用,并没有说的很明白.下面我谈一下我的理解. 1.你要先搞明白,协议和代理为什么会出现, ...

  2. Mybatis学习(2)原始dao开发和使用mapper接口代理开发

    基础知识: 1).SqlSessionFactoryBuilder: 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory.将SqlSessionFact ...

  3. mybatis开发Dao的Mapper动态代理方式

    1. 开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体跟Dao原始方法中接口实现类的方法相 ...

  4. java开发必学知识:动态代理

    目录 1. 引言 2. 代理模式及静态代理 2.1 代理模式说明 2.2 静态代理 2.3 静态代理局限性 3. 动态代理 3.1 JAVA反射机制 3.2 JDK动态代理 3.2.1 JDK动态代理 ...

  5. 02.MyBatis在DAO层开发使用的Mapper动态代理方式

    在实际开发中,Mybatis作用于DAO层,那么Service层该如何调用Mybatis Mybatis鼓励使用Mapper动态代理的方式 Mapper接口开发方法只需要程序员编写Mapper接口(相 ...

  6. 开发设计模式(四) 代理模式(Proxy Pattern)

    转自http://blog.sina.com.cn/s/blog_89d90b7c0101803g.html 代理模式:代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问.在某些情况下, ...

  7. iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包

    本文章将从两个方向分别介绍 OC 与 swift 混编 1. 第一个方向从 swift工程 中引入 oc类 1. 1 如何在swift的类中使用oc类    1.2  如何在swift中实现oc的代理 ...

  8. 微信小程序开发工具 POST net::ERR_PROXY_CONNECTION_FAILED 代理问题

    几天不动代码,再运行成这样了, {errMsg: "getLocation:fail Error: tunneling socket could not…d, cause=connect E ...

  9. 爬虫开发13.UA池和代理池在scrapy中的应用

      今日概要 scrapy下载中间件 UA池 代理池 今日详情 一.下载中间件 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. - 作用: ( ...

随机推荐

  1. sublime text3中如何使用PHP编译系统

     [WinError 2] 系统找不到指定的文件 编译错误原因,是因为编译器没有配置 第一步: 添加php可执行程序所在目录到系统环境变量(具体方法此处省略,使用本文下面的说明中的方法,此步骤可以省略 ...

  2. win10 'make' 不是内部或外部命令

    win10 解决“ 'g++' 不是内部或外部命令,也不是可运行的程序或批处理文件”的问题 https://www.jianshu.com/p/9bffbaf12bed windows下提示make不 ...

  3. Redis数据库漏洞防护

    Redis是一个高性能的数据库,Redis Crackit及Redis安全漏洞本质上是由于Redis自身缺乏安全防护机制,同时Redis的使用者又未曾遵循官方的安全规范所导致的. Redis安全漏洞 ...

  4. flutter DropdownButton使用

    import 'package:flutter/material.dart'; class MyStatefulWidget extends StatefulWidget { MyStatefulWi ...

  5. .NET Core入门程序

    易百教程 https://www.yiibai.com/dotnet_core/dotnet_core_getting_started.html

  6. 003-结构型-04-外观模式(Facade)

    一.概述 Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种.Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面.这个一致的简单的界面被称作fa ...

  7. 基于keras的triplet_loss

    https://blog.csdn.net/yjy728/article/details/79570554 https://blog.csdn.net/yjy728/article/details/7 ...

  8. jQuery根据style筛选元素

    <div style="display:block;"> <input/> </div> <div style="display ...

  9. intellij maven配置与使用

    目录 intellij maven配置与使用 Maven 常用设置介绍 Maven 骨架创建 Java Web 项目 Maven 组件来管理项目 @(目录) intellij maven配置与使用 M ...

  10. k8s中删除pod后仍然存在问题

    分析: 是因为删除了pod,但是没有删除对应的deployment,删除对应的deployment即可 实例如下: 删除pod [root@test2 ~]# kubectl get pod -n j ...