首页 > 其他分享 >Go | 浅谈包管理模式

Go | 浅谈包管理模式

时间:2022-11-08 12:55:23浏览次数:54  
标签:管理模式 GO111MODULE 依赖 浅谈 GOPATH go Go main mod

任何一门编程语言都离不开对各种工具包的使用,工具包的管理就显得异常重要了。Go 的包管理方式是逐渐演进的,本文介绍Go语言的两种包管理模式。

GOPATH模式引包(不推荐)

在 1.5 版本之前,所有的依赖包都是存放在 GOPATH 下,没有多版本控制。

go的编译器会在 $GOPATH/src 下面寻找对应的模块,src 下的每一个目录都可以对应一个模块,目录中的目录也可以是一个模块

下面展示如何在入口文件main.go 里引入非标准库model包中的变量

  1. 目录层级如下
├───main
│       main.go
└───model
        utils.go
  • main/main.go 入口文件引入utils里面的Name变量

  • model/utils.go 文件声明 package model,并定义变量var Name string = "xiao" ,变量必须是大写,否则报错name not exported by package model

  1. main.go 文件引model包
package main

import (
	"fmt"
	// 引包
  // 省略GOPATH/src, Go编译的时候会自动在src目录下寻找
	"go_code/pointer/model"
)

func main() {
	fmt.Println(model.Name) // xiao
}

开启GO111MODULE后非module项目产生的问题

GO111MODULE=on,并且已经设置GOPATH的条件下,写的代码在$GOPATH/src下,我想要使用另一个package里面的内容,并且这个package不是标准库,或者说不在GOROOT里(一般我们不会修改GOROOT中的内容),编译会报错,如下

标签:管理模式,GO111MODULE,依赖,浅谈,GOPATH,go,Go,main,mod
From: https://www.cnblogs.com/all-smile/p/16869315.html

相关文章

  • golang批量处理M个Task设置消费者只有N个然后逐个消费
    1、消费逻辑封装:packageutilsimport("context""errors""fmt")//ConsumerFuncparamsecondislist.itemtypeConsumerFuncfunc(context.Conte......
  • python测试开发django-198.bootstrap-formvalidation校验成功发ajax请求
    前言form表单提交按钮是type="submit"类型,输入框按回车会自动提交表单。如果我们想自定义提交表单,可以使用ajax提交。Form表单一个登录页面的Form表单<fo......
  • goss - 一个简洁的对象存储库
    goss✨goss是一个简洁的云存储golang库,支持阿里云、腾讯云、七牛云、华为云、awss3。......
  • Gatsby custom head & Google Analytics All In One
    Gatsbycustomhead&GoogleAnalyticsAllInOneGoogleAnalytics(分析)https://analytics.google.com/analytics/web/#/a248706071p341215062/admin/streams/table/42......
  • 浅谈PHP设计模式的注册树模式
    简介:注册树模式,属于结构型的设计模式。一种很简单的设计模式适用场景:类似IOC。写一个庞大的类库的时候,为了方便各种资源的归纳,可以统一放到一棵树上。优点:把一个个游......
  • Django限制用户上传文件格式与大小
    https://blog.csdn.net/weixin_42134789/article/details/100012339Django模型中自带的ImageField和FileField字段并不会也不能限制用户上传的图片或文件的格式和大小,这给......
  • django的auth模块学习
    auth1.我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,这还真是个麻烦的事情......
  • 3min快速掌握Go语言正/反向代理的姿势
    先重温一下什么叫反向代理,正向代理。鹅厂二面,nginx回忆录所谓正向,反向代理取决于代理的是出站请求,还是入站请求。正向代理:代理的出站请求,客户端能感知到代理程序,架构......
  • Archlinux安装Picgo配置Typora
    Typora堪称为markdown界的老大哥,其大名我们多有耳闻,所见即所的就是他的特点。但是在日常使用中,也经常会碰到一些特别的需求,比如:希望图片能够上传到云端。怎么将markdown即......
  • django图片显示问题
        第二种是可以的......