- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章go mod 安装依赖 unkown revision问题的解决方案由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
背景 。
公司一个golang的项目,使用到了公司的私有仓库,去执行go mod tidy(下载依赖)的时候,到download公司私有库的时候就报错,报错信息也不明显,只是提示找不到影响版本unkown revision 。
小知识 。
go mod 。
golang用来管理用来的,类似java的maven(但肯定没有maven这么好用) 。
go mod tidy ,下载更新依赖 。
go install这种下载依赖的方式其实是通过go get的方式去下载的 。
go insall -x 加上-x命令,可以查看更多的错误信息 。
golang环境配置 。
linux 。
1
2
3
4
5
6
7
8
9
|
安装go >= 1.12.x
vi /etc/profile
export GOROOT=/usr/local/go (go语言安装路径)
export GOPATH=/data/go (go业务代码环境路径)
export GO111MODULE=on (启用Mod依赖)
export GOPORT=8082 (启动端口,默认8080)
export GIN_MODE=debug (gin环境模式,线上用release)
export GOPRIVATE=gitlab.XXXX.com/XXX/* (公司私有私有库)
source /etc/profile
|
可惜我的环境是windows上的,索性也折腾了一下 。
1
2
3
|
使用的是windows的powershell
ls env: 显示环境变量
$env:GOPRIVATE="gitlab.XXXX.com/XXX/*" 设置环境变量
|
当然你可以直接通过图形化界面去配置,原理一致 。
git 配置 。
git的默认配置在当前用户目录的.gitconfig文件中,不管是windows还是linux 。
1
2
|
git config -l 查看git的所有配置
git config --global user.name="jwen" 设置global配置
|
踩坑 。
golang版本问题 。
电脑上本来使用的是go1.12,看代码里面给出的说是大于1.12就行了的,但知道golang的1.12和1.13版本有比较大区别,因为我就强行升级了一波,直接来到了golang1.14版本 。
在1.12版本的时候,要手动打开GO111MODULE ,就是导入这个环境变量GO111MODULE=on 。
而在1.13版本的话,就跟根据目录是否有go.mod文件自动打开的 。
所以建议升级就golang版本到1.13以上版本 。
** 。
git版本问题 。
这个是万万没想到的,说是go mod调用链中会用到一些git指令,当git版本比较旧时,调用失败产生错误,并给出歧义的提示信息,提示unknown revision 。
解决方法:更新git 。
gitlab请求问题 。
公司的gitlab仓库请求的是http请求,而不是https请求,这个需要根据公司实际情况来看 。
解决办法 。
1、确认golang,git版本,建议升级到最新版本; 。
2、新增golang的环境变量,新增GOPRIVATE,value配置为自己需求的私有仓库,让golang可以下载私有库的东西 。
1
2
3
4
5
6
7
|
建议直接golang设置
golang设置
go env -w GOPRIVATE="gitlab.xxx.com/xxxx/*"
linux配置
export GOPRIVATE=gitlab.xxx.com/xxxx/*
windows配置
$env:GOPRIVATE="gitlab.XXXX.com/XXX/*"
|
3、修改git配置,因为go install/mod tidy 去下载依赖其实是通过git命令去下载的,而且默认是http协议去下载的,建议是修改为ssh协议去获取 。
方法一:通过修改文件方式,去到当前用户目录修改.gitconfig文件,新增如下,注意私有库是http还是https 。
1
2
|
[url "git@gitlab.xxxx.com:"]
insteadOf = http://gitlab.xxxxx.com/
|
方法二:通过命令行形式,直接执行命令如下:
1
|
git config --global url."git@gitlab.xxxx.com:".insteadOf http://gitlab.xxxx.com/
|
4、然后执行go install 或者 go mod tidy确认是否可以正常下载依赖 。
补充:go mod download 私有仓库依赖时返回 unknown revision v1.0.1问题处理 。
1、go设置私有仓库 。
1
|
go env -w GOPRIVATE="YourRepositorySite/*"
|
2、git config --global url."https://YourRepositorySite".insteadof "ssh:git@YourRepositorySite" 。
将ssh地址切换成https 。
3、设置记住密码 。
1
|
git config --global credential.helper store
|
4、git clone YourRepositorySite 记住密码 。
5、go mod download下载成功 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.
原文链接:https://www.cnblogs.com/jwentest/p/12520378.html 。
最后此篇关于go mod 安装依赖 unkown revision问题的解决方案的文章就讲到这里了,如果你想了解更多关于go mod 安装依赖 unkown revision问题的解决方案的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如何在 Mod Security 中获取响应/请求正文的大小? 我不断收到此错误,例如: [Mon Sep 17 23:34:38 2012] [error] [client 192.168.1.1]
我要计算的值 对于给定的 N 值,F(N) = (F(N-1) * [((N-R+1)^(N-R+1))/(R^R)]) mod M, R 和 M. 这里 A^B 显示 A 的幂 B 而不是任何位操作
这个程序中的ans = (ans + mod) % mod语句需要什么? 假设 mod = 10^9+7。此函数在 O(log(n)) 复杂度的模运算下计算 a 的 b 次方: long long p
我正在尝试做简单的思考。在循环中使用 ng-include 将多个 html 页面包含到渲染页面。 $scope.modules = ["mod_nav","mod_feature"
我有一个使用moodle库的项目。由于客户端请求,我不得不将 URL 从moodle.example.com 更改为learn.example.com。 我认为这将是一个简单的更改,但唉,moodle
我正在尝试制作一个 Taskfile.yml 文件来构建 go 应用程序,但我不太明白在 go build main.go 之前需要“GOFLAGS=-mod=mod”命令。 引用:https://d
我正在尝试制作一个 Taskfile.yml 文件来构建 go 应用程序,但我不太明白在 go build main.go 之前需要“GOFLAGS=-mod=mod”命令。 引用:https://d
首先,我想说,我从谷歌尝试了很多方法,但 mod_rewrite 不起作用! 我从 httpd.conf 尝试了我在谷歌上找到的 1000000 种方式,但仍然无法正常工作。 我想从 example.
你好我试图安装 libapache2-mod-fcgid mod 但总是出错。 root@mail:~# sudo apt-get install libapache2-mod-fcgid Readi
我需要在 URL 中使用 + 字符。我将 Apache 与 PHP 结合使用。 ([A-Za-z0-9/_%-@\+]*) 不起作用。 我需要的是www.domain.com/c++/ => inde
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我正在尝试在新的 Ubuntu 14.04 上设置一个 apache2 Web 服务器。我一直按照找到的说明进行操作 here一切都很顺利,直到我到达被告知编辑 mod-security.conf 的
当我运行“go mod tidy”时它会中断,因为我的项目导入的包使用路径“github.com/coreos/bbolt”导入了另一个包,但是当它从该路径获取包时,它的 go.mod 说它的路径是“
这种脚本语言没有 % 或 Mod()。我确实有一个 Fix() 可以去掉数字的小数部分。我只需要积极的结果,所以不要太健壮。 最佳答案 威尔 // mod = a % b c = Fix(a / b)
在我的小项目中,我有一个脚本通过运行静态代码检查来确保正确的代码质量,例如,我使用 errcheck验证我是否处理了代码中的每个错误。 在 dep ,对于这种依赖有一个特殊的部分,称为 require
我使用 sudo apt install golang-go 在我的 ubuntu 中安装了 go 语言. 它已成功安装。当我运行 go version我收到 go version go1.10.4
谁能帮我解决这个问题: RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://www.$1 [R=301,L] 我想
BigIntegerValue.pow(IntegerValue) Java 上的指数是整数,但我有 Biginteger 值。 我曾尝试验证签名 GOST 3410,我得到了这个代码 pow,但它太
所以我才开始使用 Forge。我只是有一个非常简单的示例 mod 用于学习目的。当我使用 gradlew build 导出 mod 时,一切正常,它将 mod 放入 forge 的 build\lib
在玩 jmh 时,我遇到了一件我无法解释的奇怪事情。 @BenchmarkMode(Mode.SingleShotTime) @Measurement(iterations = 10, batchSi
我是一名优秀的程序员,十分优秀!