返回顶部
首页 > 资讯 > 后端开发 > GO >go mod 使用旧版本 版本号指定方式
  • 805
分享到

go mod 使用旧版本 版本号指定方式

GOMOD版本版本号 2022-06-07 20:06:16 805人浏览 独家记忆
摘要

在使用Go mod的过程中,发现不容易指定版本号 尤其是没有打tag的,不知道怎么指定版本号, 不知道有哪版本号 正常使用都没有问题,但是当引用的项目用了旧的代码, 这时候必须

在使用Go mod的过程中,发现不容易指定版本号

尤其是没有打tag的,不知道怎么指定版本号, 不知道有哪版本号

正常使用都没有问题,但是当引用的项目用了旧的代码, 这时候必须使用旧的版本,无法指定版本,不知道如何入手

尤其是k8s.io不知道是什么鬼, 从哪里看它的代码,只知道GitHub.com

这个时候在 go.mod文件中 require 里面加上 github.com/kubernetes/cloud-provider 2bf8e45

此时会自动生成版本号, 其中 2bf8e45 这个是在github上找到源码的特定的提交 commit 号, 想使用旧版本的话, 找到对应的tag或分支 找到 commit 号

这个commit号也可以使用tag号来替换

例如

k8s.io/cli-runtime => github.com/kubernetes/cli-runtime kubernetes-1.14.2

然后使用replace来替换,require里面的 github.com/kubernetes/cloud-provider 2bf8e45 会自动变成


github.com/kubernetes/cloud-provider v0.0.0-20190516232619-2bf8e45c8454

此时,我们把它删除并复制到replace 里面


k8s.io/apiserver => github.com/kubernetes/apiserver v0.0.0-20190516230822-f89599b3f645
k8s.io/cloud-provider => github.com/kubernetes/cloud-provider v0.0.0-20190516232619-2bf8e45c8454
sigs.k8s.io/yaml => github.com/kubernetes-sigs/yaml v1.1.0
效果这样的

原来使用的新版本号不用动,主要换了replace

补充:golang:比较版本号大小

看代码吧~

package main
import (
"fmt"
"strings"
)
var (
VersionBig = 1
VersionSmall = 2
VersionEqual = 0
)
func compareStrVer(verA, verB string) int {
verStrArrA := spliteStrByNet(verA)
verStrArrB := spliteStrByNet(verB)
lenStrA := len(verStrArrA)
lenStrB := len(verStrArrB)
if lenStrA != lenStrB {
panic("")
}
return compareArrStrVers(verStrArrA, verStrArrB)
}
func compareArrStrVers(verA, verB []string) int {
for index, _ := range verA {
littleResult := compareLittleVer(verA[index], verB[index])
if littleResult != VersionEqual {
return littleResult
}
}
return VersionEqual
}
func compareLittleVer(verA, verB string) int {
bytesA := []byte(verA)
bytesB := []byte(verB)
lenA := len(bytesA)
lenB := len(bytesB)
if lenA > lenB {
return VersionBig
}
if lenA < lenB {
return VersionSmall
}
return compareByBytes(bytesA, bytesB)
}
func compareByBytes(verA, verB []byte) int {
for index, _ := range verA {
if verA[index] > verB[index] {
return VersionBig
}
if verA[index] < verB[index] {
return VersionSmall
}
}
return VersionEqual
}
func spliteStrByNet(strV string) []string {
return strings.Split(strV, ".")
}
func main() {
versionA := "1.2.3.54"
versionB := "1.2.3.54"
fmt.Println(compareStrVer(versionA, versionB))
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。


您可能感兴趣的文档:

--结束END--

本文标题: go mod 使用旧版本 版本号指定方式

本文链接: https://lsjlt.com/news/30635.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go mod 使用旧版本 版本号指定方式
    在使用go mod的过程中,发现不容易指定版本号 尤其是没有打tag的,不知道怎么指定版本号, 不知道有哪版本号 正常使用都没有问题,但是当引用的项目用了旧的代码, 这时候必须...
    99+
    2022-06-07
    GO MOD 版本 版本号
  • go mod供应商旧版本的依赖
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《go mod供应商旧版本的依赖》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对...
    99+
    2024-04-04
  • maven-compiler-plugin版本指定方式
    目录maven-compiler-plugin版本指定1 pom文件添加支持2 环境jdk/jre指定3 Java Build4 pom文件去除支持maven-compiler-pl...
    99+
    2024-04-02
  • go mod文件内容版本号简单用法详解
    go版本 本文go版本是1.14,开启 GO111MODULE="on" 经常在go.mod里面看到引入第三方库的版本号: module test go 1.14...
    99+
    2024-04-02
  • Win10 TRM正式版日期、版本号已敲定
    Windows 10将在7月29日正式发布,而根据俄罗斯爆料大神@WZor的说法,RTM正式版在6月底的某个时候就会完成。真的这么快吗? 最新消息称,Windows 10 RTM版已经确定将在7月15日完成,距今还有差不...
    99+
    2023-06-16
    Win10 TRM 正式版 日期 版本
  • debian用户指定Python版本
    创建命令alias 安装好debian后系统可能会自带多个python版本,在不改变系统默认设置的前提下我们可以给当前用户通过建alias的方式指定python版本 查看当前系统已有的Python版本 dqeric@debian:~$ l...
    99+
    2023-01-31
    版本 用户 debian
  • 使用Swagger实现接口版本号管理方式
    目录Swagger实现接口版本号管理使用swagger测试接口Swagger实现接口版本号管理 前言:使用swagger暴露对外接口时原则是每个系统在不同的迭代版本仅仅需要暴露该迭代...
    99+
    2024-04-02
  • android studio指定ndk版本的方法
    1.指定ndkVersion字段(推荐) 在app/build.gradle下做如下声明,其中"25.2.9519653"是你所需要指定的ndk版本号 android { ndkVersion "25.2.9519653"} 使用该字...
    99+
    2023-10-02
    android studio android java
  • SpringBoot API增加version版本号方式
    目录SpringBoot 增加 API Version一、增加ApiVersion自定义注解二、新增RequestCondition自定义匹配条件三、重写RequestMapping...
    99+
    2024-04-02
  • 如何使用rpm安装指定版本docker
    这篇文章给大家分享的是有关如何使用rpm安装指定版本docker的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.原因  如果系统是Centos7.3,直接使用yum install docker安装的docke...
    99+
    2023-06-20
  • Spring Security全新版本使用方式
    目录前言基本使用升级版本旧用法新用法高级使用基于方法的动态权限基于路径的动态权限效果测试总结前言 前不久Spring Boot 2.7.0 刚刚发布,Spring Security ...
    99+
    2024-04-02
  • 多个node版本下指定版本运行项目的解决方法
    这篇文章将为大家详细讲解有关多个node版本下指定版本运行项目的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。解决的过程我不断的百度,然而百度我只能看到阿里的解决方案。没有更多了(沮丧)然后我就想...
    99+
    2023-06-14
  • 如何自定义node版本,实现node多版本控制方式
    目录自定义node版本实现node多版本控制nvmnvm下载安装1.勾选我介绍,然后进行下一步2.选择nvm安装的路径3.选择node安装的位置4.检测是否安装成功 nvm-v&nb...
    99+
    2023-05-16
    自定义node版本 node多版本控制 node版本自定义
  • Ubuntu安装指定Python版本详解,理论上各版本通用
    此方法理论上讲适用于所有Ubuntu版本(可能太老的不行)本文章中写的是18.04的,之前我在16.04,20.04上均安装成功 文章目录 下载Python安装Python(方法一:默认...
    99+
    2023-09-03
    ubuntu python linux
  • Ubuntu中安装软件时怎么指定版本号
    这篇文章主要介绍了Ubuntu中安装软件时怎么指定版本号的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Ubuntu中安装软件时怎么指定版本号文章都会有所收获,下面我们一起来看看吧。首先我们可以查看系统中某个软件...
    99+
    2023-07-04
  • Eclipse实现PHP版本号的更新方式
    标题:Eclipse实现PHP版本号的更新方式 随着项目的不断发展,代码版本的管理变得至关重要。在PHP项目开发过程中,对于版本号的更新也是必不可少的一部分。本文将介绍如何通过Ecli...
    99+
    2024-04-02
  • 怎么使用shell脚本查看redis版本号
    要使用shell脚本查看Redis版本号,可以使用以下命令:```shellredis-server --version```这个命...
    99+
    2023-08-30
    shell redis
  • 多个python版本如何指定python的某一个版本使用pip工具安装
    背景 同时安装了python2.7和python3.7两个版本,那么如果我想将第三方的包安装到指定的python版本写该怎么做呢?(注意了:这里我只查询出来2.7版本,是因为我只配置了版本2.7的环境变量)   解决方法 方法一:使用全...
    99+
    2023-10-20
    python pip 开发语言
  • 12C还原使用旧版本RMAN所创建的备份
    可以还原使用旧版本RMAN所创建的备份,最旧版本为9.2.0.8。在创建备份的数据库版本与还原备份的数据库版本之间必须有支持的升级路径存在。比如,源数据库的版本为11gr2并且配置使用spfile参数文...
    99+
    2024-04-02
  • go下载指定版本的依赖包图文详解
    目录前言1、进入github依赖包官网2、确认go语言的版本号3、在go.mod里添加tag字段4、拉取依赖包总结前言 在go语言开发中,要下载各种各样的依赖包,这些依赖包版本有的以...
    99+
    2023-05-18
    go 下载依赖 golang依赖包管理 go项目怎么下载依赖
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作