请教go 1.16 mod的几个问题

czgcool · 2021-02-21 11:58:44 · 1786 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-02-21 11:58:44 的主题,其中的信息可能已经有所发展或是发生改变。

资深码农一个, 之前一直用GOPATH, 1.17官主计划废弃GOPATH, 就不讨论回滚操作了

1: 假如本地有一个很常用的库,叫common下面有

common/mail
common/rsa

等之前做法是放到 GOPATH 里,新版本如何达到多个项目共用这个库,而且不需要放github上,目前找不到办法只能扔到GOROOT的src下面,感觉很不优雅

2: demo.go 如下

package main

import (
    "github.com/xx/yy"
)

func main() {
    yy.Test()
}

go run demo.go就跑不起来,必须要在下面go mod init一下,感觉非常恶心,常用的一些小工具脚本都是单个文件,不是大项目,完全没必要go mod, 大神们有啥好办法没有.


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1786 次点击  
加入收藏 微博
7 回复  |  直到 2021-03-02 22:14:41
polaris
polaris · #1 · 4年之前

module 中的 replace 了解下

czgcool
czgcool · #2 · 4年之前

@polaris 第一个问题用的程序比较多我就直接在GOROOT的src下面软连接了,这样不用写replace, 第二个问题是不是无解,只要引用第三方库,必须要用go.mod ?

polaris
polaris · #3 · 4年之前
czgcoolczgcool #2 回复

@polaris 第一个问题用的程序比较多我就直接在GOROOT的src下面软连接了,这样不用写replace, 第二个问题是不是无解,只要引用第三方库,必须要用go.mod ?

放 goroot 里真的是瞎搞。

module 是官方的依赖管理办法,而且以后不允许 GOPATH 了,必须用它。

czgcool
czgcool · #4 · 4年之前

@polaris Go有些独裁了,npm都有-g选项,go mod现在还是不够灵活

focusonline
focusonline · #5 · 4年之前
czgcoolczgcool #4 回复

@polaris Go有些独裁了,npm都有-g选项,go mod现在还是不够灵活

在什么山唱什么歌, 用go就应该适应它, 其实go mod和npm --save也没区别吧, -g的话是因为npm是没有所谓标准官方的库.安装一些全局依赖只能-g, go是不提倡使用非官方的全局依赖的, 所以go mod也没啥不好的.

jarlyyn
jarlyyn · #6 · 4年之前

你到底要干啥……

至少目前版本vendor 目录还能用,1.17等1.17方案确定了再说。

jthmath
jthmath · #7 · 4年之前

一般来说,企业内部会有gitlab私服之类的东西,可以把公共代码放在那里,然后设置GOPRIVATE环境变量,这样可以达到common代码的目的

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传