cargo 中的版本依赖

cargo中的版本依赖

在Cargo.toml中有一个[denpendencies]节点,指定需要crate的名称以及版本,其中有些约定(在rust中使用了一个叫semver库来处理,原单词:Semantic version,翻译成:语义化版本标准,最全原文:Semantic version parsing and comparison,我这理解为语义化的版本解析和比较)。

crate中有主要,次要,补丁来组成版本,比如md5 ="0.6.1",表示现在的版本在第六个次要版本,第1个补丁。

1:不加任何符号指定(这种和使用"^"符号一样的作用,具体的看第3点)

md5 = "0" <==> [0.0.0 -- <1.0.0]

md5 = "0.6" <==> [0.6.0 -- <0.7.0]

md5 = "0.6.1" <==> [0.6.1 -- <0.7.0]

2: *

md5 = "*" // 接受任何新版本

3:\^符号

插入符,从左往右数,

如果是0就往下一个版本号找,一直(总共就三个)找到一个非0的然后+1,如果一直没找到,就在指定的位置上+1(不包含)

^1.2.3 := >=1.2.3 <2.0.0
^0.2.3 := >=0.2.3 <0.3.0
^0.0.3 := >=0.0.3 <0.0.4
^0.0   := >=0.0.0 <0.1.0
^0     := >=0.0.0 <1.0.0

4:\~

只接受最小范围的版本

md5 = "~0" <==> [0.0.0---1.0.0(不包含)]

md5="~0.6" <==> [0.6.0---0.7.0(不包含)]

md5="~0.6.1" <==> [0.6.0---0.7.0(不包含)]

第二和第三个是一样的,因为补丁版本已经是最低的

5:> ,<,=

限制大范围版本

md5 = ">0.6.1",//最低版本0.6.2

md5 = ">=0.6.1" //最低版本0.6.1

md5 = "=0.6.1" //锁定版本0.6.1

6:{}

可配置的外部地址,支持git仓库,本地路径等

md5 = { git = "http://github/mdt_rs", branch = "master" } //仓库地址和版本

md5 = { path = "../md5" ,version = "0.1.0", feature=“cust”} // version可以使用6之前的约束,feature是编译属性

其他

在依赖中有很多不可预发的出现一些问题

1:循环依赖

2:不同crate依赖的版本库不同

3:不同平台(操作系统)不同依赖

4:不同环境(开发,测试,生产)不同依赖

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!