10.使用nexus3配置golang私有仓库
1,前言说明
golang是近来非常火热的语言,但是处理其依赖包一直都是一个让人头疼的问题,尤其是在国内,开发者需要下载一些官方的包的时候,就会非常苦恼。尽管已经有了私服 Athens
,公司也已经搭建了这个私服,但是小伙伴们使用下来,反馈仍旧不好,大多时候下载官方的包时还是要自己本地开小飞机进行下载。
今天就打算借助于nexus优秀且强大的代理能力,来解决一下这个痛点。
在nexus官方文档配置go代理的文章里,有如下一个拓扑说明了nexus当中go私服的用法:
这张图的意思很明了,也就是nexus私服的建立,同样需要依赖于 Athens
,因为在对一些本地包下载的问题上,显然Athens
解决的更好一些。于是乎,在目前nexus最新的版本(3.24)中我们看到,其也仅仅支持proxy
和group
两种类型,group是统一对外提供访问的,不必过多介绍,那么本篇文章,也就将是重点围绕着proxy类型的代理展开来讲的。
目前来看,纵然是nexus官方文档,谷歌百度,也没有比较完备的文档针对nexus当中配置golang项目私服的文章,我这里也算是结合之前配置其他代理的一些经验,分享一下自己配置整理的思路。至少目前公司小伙伴用起来,都是非常开心满意的,被这种简约高速的代理方式,纷纷赞不绝口的。
配置过程中,将添加三个proxy类型的,其中一个是套娃形式的,接下来一一介绍。
2,创建blob存储
为其创建一个单独的存储空间。
3,阿里代理
首先将国内的阿里仓库添加进来,再一次口头表扬阿里,这造福广大开发者的举措。添加的方式非常简单,与其他项目的代理添加方式一致:
- Name: proxy-go-ali
- Proxy
- Remote Storage: 远程仓库地址,这里填写: https://mirrors.aliyun.com/goproxy/
- Storage: go-hub。
其他的均是默认。
整体配置截图如下:
4,官方代理
一个全球代理为 Go 模块而生,添加的方式非常简单,与其他项目的代理添加方式一致:
- Name: proxy-go-gf
- Proxy
- Remote Storage: 远程仓库地址,这里填写: https://goproxy.io
- Storage: go-hub。
其他的均是默认。
整体配置截图如下:
5,创建group类型的go仓库
- Name:group-go
- Storage:选择专用的blob存储go-hub。
- group : 将左边可选的4个仓库,添加到右边的members下。
整体配置截图如下:
6,简单验证
没有使用私服之前,里边是空空如也。
通过设置GOPROXY将代理指向私服地址,然后进行项目的编译,可以看到对应的依赖的包已经缓存到私服当中了。
通过查看go版本,采用下面的方式设置
[root@worker ~]# go version
go version go1.13.11 linux/amd64
如果您使用的 Go 版本是 1.12 及以下
# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=http://192.168.75.11:8081/repository/group-go/
如果您使用的 Go 版本是 1.13 及以上,采用这个进行配置
go env -w GO111MODULE=on
go env -w GOPROXY=http://192.168.75.11:8081/repository/group-go/
使用go安装模块
[root@worker ~]# go get -u golang.org/x/sys
go: finding golang.org/x/sys latest
go: downloading golang.org/x/sys v0.0.0-20200610111108-226ff32320da
go: extracting golang.org/x/sys v0.0.0-20200610111108-226ff32320da
参考文章:http://www.eryajf.net/4941.html
最新文章
- IE兼容性的注意点
- windows 硬盘格式不一样的文件移动 导致拒绝访问 权限丢失 0字节解决办法
- BZOJ3746 : [POI2015]Czarnoksiężnicy okrągłego stołu
- 利用绝对定位与margin实现元素居中
- win32画线考虑去锯齿
- 依赖注入及AOP简述(五)——依赖注入的方式 .
- 邮件应用Acompli和日历应用Sunrise(传微软曾考虑以80亿美元收购企业通讯公司Slack)
- MySQL 水平拆分与垂直拆分详解
- Ubuntu每次启动都显示System program problem detected
- 【转】对象克隆(C# 快速高效率复制对象另一种方式 表达式树)
- 图解python中赋值、浅拷贝、深拷贝的区别
- 面试题_默认传参list
- python学习笔记----正则表达式
- 微软BI 之SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用以及Sort 排序组件同步异步的问题
- Examining Huge Pages or Transparent Huge Pages performance
- python学习笔记比较全
- python改动文件内容,不须要read,write多个动作。
- DOM2和DOM3读书笔记
- 一次spring aop 切面的问题
- unity3d创建window