使用以下语法声明对包的依赖有什么区别:“==1.2.3”(我理解,在 spec 中有明确的解释)和“1.2.3”(我也看到正在使用,但脚本中没有解释)?这是否像一个软约束,让包管理器可以自由地解析到另一个版本?
谢谢
最佳答案
一个依赖可能被指定为:
-
"== 1.2.3"
实际上与"1.2.3"
相同, 意思是“正是这个版本” -
">= 1.2.3"
,表示“任何大于或等于该版本的版本,包括主要版本更新” -
"<= 1.2.3"
, 意思是“任何不大于那个的版本” -
"~> 1.2.3"
, 意思是“相同的主要版本,相同的次要版本,任何大于或等于3
的颠覆” -
"~> 1.2"
,意思是“相同的主要版本,任何次要版本大于或等于2
”
语法"~> 1"
不允许,因为它实际上与 ">= 1.0.0"
相同.
所以,为了获得一些灵 active ,人们通常会使用 "~> 1.2.3"
或 "~> 1.2"
如果他们使用适当的语义版本控制信任包。 ">= 1.2.3"
不建议这样做,因为即使使用语义版本控制,主要版本也可能包含重大更改。
关于dependencies - Elixir 依赖项中的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851622/