文章目录

  • Go (Golang) 工具之依赖包管理工具goimports
    • Go语言规范-import(导入)排序
    • 什么是goimports
    • 安装和使用
    • Golang 使用goimports
      • unrecognized import path "golang.org/x/*"的解决办法

Go (Golang) 工具之依赖包管理工具goimports

Go语言规范-import(导入)排序

当我们需要通过 import 导入一些包时,如何进行排序呢?

建议顺序:标准库,系统库,第三方库,本项目库,不同分组使用空行分割开。

什么是goimports

golang.org/x/tools/cmd/goimports

Go开发过程中时候总需要手工引入包和删除没有使用的包,此时有人意识到可以改善下,Go官方提供了 GoImports 工具。

goimports可以自动对代码中的依赖包进行管理,如果有用到,就会自动import,也会对没有用到的包进行自动删除。

goimports工具是Go官方提供的一种工具,它能够为我们自动格式化 Go 语言代码并对所有引入的包进行管理,包括自动增删依赖的包引用、将依赖包按字母序排序并分类。

安装和使用

$ go install golang.org/x/tools/cmd/goimports@latest

Golang 使用goimports

我们在使用Goland IDE的时候,建议使用goimports工具。它具备包依赖管理+gofmt的功能。

GoLand也支持在保存代码时,自动调用 gofmt 和 goimports 来自动格式化代码。在最新版的GoLand中,是通过File Watchers插件来实现此功能的。

首先,得保证安装了一个叫做”File Watchers”的插件,并设置为启用状态。默认新版本默认是安装和开启的。

具体配置如下:在File Watchers中添加
go fmt:保存的时候自动 格式化go代码
goimports:保存的时候自动导入处理包
gometalinter:保存的时候自动检查go语法

第一次使用,goimports需要我们进行安装(一般去cmd中执行,我是直接在goland的Terminal中执行的):

$ go install golang.org/x/tools/cmd/goimports@latest

测试
ctrl+s保存代码,查看格式变化

unrecognized import path "golang.org/x/*"的解决办法

由于国内网络原因,因此访问https://golang.org/网站会被限制。所以在go get下载其他第三方包的时候,如果这个第三方包又引用了https://golang.org/x/下的包,通常会下载失败,就会报这个错误。

解决方法

  1. 通常是拨VPN到海外进行下载
  2. GOPROXY:解决 go get golang.org/x 包失败
    Go 版本>=1.13 设置GOPROXY
    在 Linux 或 macOS 上面,需要运行下面命令:
go env -w GOPROXY=https://goproxy.cn,direct
# 设置不走 proxy 的私有仓库,多个用逗号相隔
go env -w GOPRIVATE=*.corp.example.com

Go (Golang) 工具之依赖包管理工具goimports | Go语言规范-import规范(导入)排序 |GoLand:设置gofmt与goimports,保存时自动格式化代码相关推荐

  1. Golang学习笔记之依赖包管理工具gvt

    一.gvt概念 gvt全称为Go vendoring tool,可译为Go供应工具,或者意译为Go依赖包依赖包工具,whatever~~,简单来说就是可以方便的获取.更新.删除项目所依赖的工具包,这个 ...

  2. Cocoa依赖包管理工具

    Carthage iOS 作为目前最大的移动端开发平台,开发者的生态环境也是非常繁荣.在 iOS 早期时候,开发者想要使用第三方库就必须将其源代码引入工程,或者说是以 git submodule 的形 ...

  3. python模块管理工具,Python的包管理工具

    Python的包管理工具 python包管理工具 python包管理工具简介 distribute是setuptools的取代,pip是easy_install的取代. Distribute是对标准库 ...

  4. git管理工具_使用包管理工具

    HomeBrew HomeBrew 是Mac上十分好用的包管理工具. 如果使用过 Linux,那么一定不会对 yum 或者 apt 感到陌生.homebrew 就是 Mac 上的这样的一个包管理工具. ...

  5. Golang 依赖包管理工具---glide

    安装glide $ go get github.com/Masterminds/glide $ go install github.com/Masterminds/glide 验证 $ glide N ...

  6. python pip工具命令_Python包管理工具pip

    一.pip概述 1.python包 python包,可以使我们利用网络上现成的代码库资源,解决程序中某一方面的问题,类似于C语言的各种库. PyPi(Python Package Index ,包索引 ...

  7. python中有很多包管理工具有哪些不是_C 语言中有没有类似 Python 中 pip 的包管理工具?...

    C 以及 C++ 虽然经历过标准化,但缺乏单一的掌控者.现实世界里的 C/C++ 犹如神圣罗马帝国,固然有一个委员会在名义上号令天下,但事实上是各路诸侯的方言割据:Vistual Studio 的 C ...

  8. GPU技术支持-基础篇-包管理工具

    GPU技术支持-基础篇-包管理工具 目录 GPU技术支持-基础篇-包管理工具 前言 概述 包管理工具简介 dpkg「Debian Package」 rpm「RPM Package Manager」 依 ...

  9. Go 语言编程 — go mod 依赖包管理

    目录 文章目录 目录 go mod 依赖包管理 使用 go mod go mod 的子指令 go mod 依赖包管理 Golang 将 Modules(模块)定义为 "源代码交付和版本控制的 ...

最新文章

  1. 这样是不是就可以预测语音长度和内容了
  2. 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
  3. REST、RESTful 与 RESTful API
  4. 武林外史java游戏,武林外史_网络游戏专区_腾讯游戏频道
  5. ubuntu18.04安装chrome和优化界面
  6. 这种玩法闻所未闻,利用python编程自定义QQ的在线状态
  7. Machine Learning Notes Ⅲ
  8. keras 深度神经网络模型的搭建
  9. 机器人挠人脚心_挠同学脚心
  10. Java入门到精通——工具篇之Maven概述
  11. IDEA回到光标的上一次位置
  12. Restlet 短连接问题
  13. java突击面试章程
  14. 【转录调控网络】基因转录调控网络——转录因子调控网络分析
  15. Java SSL实现使用详解
  16. 用户交易数据分析 -持仓收益(盈亏)胜率等指标计算
  17. 为什么我停掉孩子所有的兴趣班,也没停掉编程!
  18. 宝健中国用产品缔造口碑,深受消费者信赖
  19. Java学习笔记22:并发(2)
  20. WAF防火墙有什么用

热门文章

  1. Tinker -- 微信Android热补丁方案 常见问题
  2. 降维算法_LDA_PAC
  3. 汇编程序设计与计算机体系结构软件工程师教程笔记:汇编语法基础知识
  4. JAVA程序设计:追逐游戏(LCP 21)
  5. LinkedList解析
  6. 选一款可以增加幸福感的显示器
  7. fasttext工具的使用
  8. java 证书链_java – 获取证书链
  9. 用C编写COM(一)
  10. 名帖190 米芾 行书《多景楼诗册》