用了maven好多年,知道配置dependency时能指定版本范围吗?

Maven是一个Apache开源项目管理工具,基于项目对象模型POM(Project Object Model),将配置信息定义在一个pom.xml文件中,管理项目构建以及提供其它高级管理工具。


pom.xml中引入依赖库时,需要指定groupId, artifactId和version,比如引入fastjson:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.60</version>
</dependency>


从一个fastjson安全漏洞的修复和版本升级说起,19年9月4日上传发布了maven库1.2.60,修复了当字符串中包含x转义字符时可能引发OOM的问题,增加了AutoType黑名单,由于安全漏洞危害较大,官方建议升级至1.2.60以及更新版本。


那么我们是否可以配置在fastjson新版本发布时,自动使用最新版本呢?答案是可以的,来看配置pom.xml时,dependency信息中版本的高级写法,很像数学公式:

image.png


首先说明一点,因为JSON协议以及fastjson库的兼容性和稳定性都非常好,所以才可以考虑自动升级到最新版本,pom.xml中依赖配置这样写,将自动引用版本大于等于1.2.60的fastjson:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>[1.2.60, )</version>
</dependency>


猜你喜欢

转载自blog.51cto.com/13851865/2473220