版本约束

通过 Composer 来安装依赖包,关于依赖包的版本约束,可以使用多种不同的方式。

版本格式

版本格式:主版本号.次版本号.修订版本号,版本号递增规则如下:

  • 主版本号:当你做了不兼容的 API 修改。
  • 次版本号:当你做了向下兼容的功能性新增。
  • 修订版本号:当你做了向下兼容的问题修正。

先行版本号及版本编译元数据可以放到“主版本号.次版本号.修订版本号”的后面,作为延伸。

确切的版本号

你可以指定包的确切版本。如 monolog/monolog 1.0.2 。

范围

通过使用比较操作符可以指定有效的版本范围。

有效的运算符有 >、>=、<、<=、!=、~、^ 等。

你可以定义多个范围:

  • 中间用逗号隔开,视为逻辑 AND 。
  • 中间用管道符号 | 隔开,视为逻辑 OR 。

AND 的优先级高于 OR。

>=1.0
>=1.0,<2.0
>=1.0,<1.1|>=1.2

通配符

你可以使用通配符 * 来指定一种模式。

1.0.* 与 >=1.0,<1.1 是等效的。

波浪号运算符

~ 表示版本号只能改变最末尾那段(如果是 ~x.y 末尾就是 y,如果是 ~x.y.z 末尾就是 z)。

波浪号运算符 ~ ,对于遵循语义化版本号的项目非常有用。

~1.2 相当于 >=1.2,<2.0

~1.2.3 相当于 >=1.2.3,<1.3

常见的用法是标记你所依赖的最低版本,像 ~1.2 (允许 1.2 以上的任何版本,但不包括下一个重要版本 2.0)。

注意: 虽然 2.0-beta.1 严格地说是早于 2.0,但是,根据版本约束条件, 例如 ~1.2 却不会安装这个版本。就像前面所讲的 ~1.2 只意味着 .2 部分可以改变,但是 1. 部分是固定的。

^运算符

^ 表示除了主版本号以外,次版本号和修订版本号都可以变。

^ 和 ~ 的意思很接近,在x.y的情况下是一样的,都是代表 x.y <= 版本号 < (x+1).0。但是,在版本号是x.y.z的情况下就有区别,举个例子吧:

~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0

^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0

稳定性

默认情况下只有稳定的发行版才会被考虑在内。

如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用稳定标志。

{"require": {"monolog/monolog": "1.0.*@beta","acme/foo": "@dev"}
}

你可以对所有的包做 最小稳定性 设置,而不用每个依赖逐一设置。

minimum-stability (root-only)

minimum-stability 定义了包的最小稳定性。默认为 stable(稳定)。

如果你依赖于一个 dev(开发版本)包,你应该明确的进行定义。

minimum-stability 会对每个包的所有版本都会进行稳定性检查,低于 minimum-stability 所设定的最低稳定性的版本,将在解决依赖关系时被忽略。对于个别包的特殊稳定性要求,可以在 require 或 require-dev 中设定。

可用的稳定性标识(按字母排序)有:dev、alpha、beta、RC、stable。

prefer-stable (root-only)

当此选项被激活时,Composer 将优先使用更稳定的包版本。

使用 "prefer-stable": true 来激活它。

Composer 中依赖包的版本约束和稳定性相关推荐

  1. CodeIgniter中运用composer安装依赖包

    2019独角兽企业重金招聘Python工程师标准>>> 基本信息 CodeIgniter 版本:3.1.8 Nginx: Tengine/2.1.2 (nginx/1.6.2) My ...

  2. composer安装依赖包

    安装依赖包 要开始在你的项目中使用 Composer,你只需要一个 composer.json 文件.该文件包含了项目的依赖和其它的一些元数据. 获取定义的依赖到你的本地项目,只需要调用 compos ...

  3. idea中Maven中依赖包下载不了的问题的解决办法

    今天安装依赖包浪费了很多的时间,看了很多的博客才得到了解决,接下来总结一些. 1.首先将Settings -> Build,Execution,Deployment -> Build To ...

  4. Java各中依赖包介绍

    单元测试依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactI ...

  5. 使用composer下载依赖包下载失败的解决方法

    From: https://blog.csdn.net/dlnumk/article/details/79200507 下载好的composer默认的下载地址是国外的,在下载的过程中网络不好或者可能被 ...

  6. go依赖包出现版本不兼容的问题

    大概是说原因是 google.golang.org/grpc 1.26 后的版本是不支持 clientv3 的. 也就是说要把这个改成 1.26 版本的就可以了. 在 go.mod 里加上: repl ...

  7. maven中pom.xml中依赖包代码的查询地址

    http://mvnrepository.com/ 转载于:https://www.cnblogs.com/wangcp-2014/p/5456672.html

  8. Python中pip,pip3,虚拟环境(venv)三者的关系,如何在pycharm中使用虚拟环境,以及安装依赖包所遇到的问题。

    目录 一.是什么是pip,pip3,与虚拟环境(venv) 二.三者之间的联系 三.在pycharm中设置虚拟环境 四.安装python依赖包的快捷方式 五.注意事项 六.感谢观看!!!点个赞或者关注 ...

  9. Go Modules依赖包管理与Go Modules实战

    目录 Go Modules依赖包管理 Go Modules 简介 Go 包管理的历史 Go1.5 版本前:GOPATH Go1.5 版本:Vendoring "百花齐放":多种 G ...

最新文章

  1. Django:永别了pycrypto库~
  2. Error creating bean with name 'multipleEntityManagerFactory' defined in class
  3. 杭州电子科技大学-杭电信标一队
  4. hi3559a100解码
  5. jquery : 动态构建表单自动提交请求
  6. HDU 4121 Xiangqi 模拟题
  7. SVN中Revert changes from this revision 跟Revert to this revision
  8. c语言 拓补排序源代码,拓扑排序C语言代码
  9. MySQL Cookbook 学习笔记-02
  10. Python 到底是怎么火起来的??网友:真的值!
  11. Python 爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?
  12. java版电子商务spring cloud分布式微服务b2b2c社交电商(一)服务的注册与发现(Eureka)...
  13. Template-Based 3D Model Fitting Using Dual-Domain Relaxation
  14. 今天我才明白了泛型,泛型类 泛型方法
  15. Linux连接锐捷校园网客户端
  16. android 原型图片,墨刀如何创建Android原型图?
  17. 软件工程实训有必要吗_软件工程专业有没有必要考研?
  18. 一本正经的聊一聊面试官的心理
  19. Java:获取两个区间内 为周几或星期符合 的所有日期,指定日期 使用周数计算出相对应的工作日
  20. 使用CSS实现图片叠加效果

热门文章

  1. js中的数组方法以及循环数组的方法
  2. 6 月程序员平均工资又来啦!平均工资 15K ,你拖后腿了吗?
  3. JavaScript字符串拼接变量名及赋值
  4. 不是光好看就够了,酷狗耳机将“把话讲清楚”推到新高度
  5. 祝福四川的人民平安健康
  6. Flyway migration 问题
  7. python画易烊千玺代码_因为易烊千玺的一张图片,我找来了 6 款神奇的生成器
  8. 11. 系统限制和选项
  9. 苹果6访问限制密码4位_苹果的Safari浏览器将比谷歌的Chrome浏览器更加安全
  10. html页面设置成中文编码(UTF-8)