zoukankan      html  css  js  c++  java
  • go mod 拉取私有仓库

    前言

    如果代码中依赖了本地的包, 这个包是托管在内网 Gitlab 中, 而且不是 HTTPS 服务,那么应该怎样使用 go mod 拉取代码呢? 本文会给你我的答案

    正文

    首先我们要知道, 如果本地的 go 环境中已有某个包, 在使用 go mod vendor 时是不会去再下载的, 会直接将包拷贝到 vendor 中, 因此我们使用 go get xxx 下载私有仓库的包到本地即可

    go get xxxxx

    然后我们发现 go get 默认会拉取 https 的包, 但是我们的仓库又没有做 https 映射, 也就是会请求 https://xxxxx 时会报错

    connection refused

    针对 http 的情况, 尽管 http 不够安全, 但是 go 官方还是有一个选项

    go get --insecure xxxx

    此时就会去访问 http 而不是 https

    而我们发现又会报错

    terminal prompts disabled

    实际上是因为我们需要拉仓库的代码时, 如果仓库是私有的, 肯定需要身份验证, 我们知道 go get 实际上是 git 拉取代码, 所以我们可以使用添加 SSH 的方式, 也可以直接在命令行中输入帐密, 本次介绍命令行, 而在 go get 时默认是关闭 git 的输入的, 此时我们需要添加环境变量, 此处我们演示临时添加一个

    export GIT_TERMINAL_PROMPT=1

    在执行 go get 就会发现提示输入帐密, 输入成功后就可以拉下来

    然后我们执行 go mod vendor 会发现没有问题了, 因为你已经把私有的拉下来了, 执行 vendor 时不会去拉了

  • 相关阅读:
    IDEA快捷的添加包名
    Spring源码(一)
    Java的理解
    剪绳子
    机器人的运动范围
    矩阵中的路径
    N皇后问题
    回溯法
    全排列
    反转链表
  • 原文地址:https://www.cnblogs.com/chnmig/p/12868474.html
Copyright © 2011-2022 走看看