今天要发布一个版本,运维在Jenkins构建项目时失败了,把错误截图发给我,错误显示是代码中声明的package不存在。我打开idea看代码,发现那个代码是没有问题的,也能正常运行,但是本地package的时候也失败了,提示同样的错误,关键是这个代码半年没动过了,不可能突然报错啊,一时间有点不知所措。
打开pom文件查看那个代码使用的依赖,发现version是这么写的

dependency依赖
这里就是问题所在了,因为这种写法不是指定固定的版本,而是代表一个变化的值,这里的意思表示从4.0版本开始一直到当前最新的版本,这里最终会使用最新的版本。我再到本地maven仓库下面去找这个依赖的jar包,发现最新的版本是4.1.0,这个是最近刚刚发布的包,里面已经移除了之前版本的一个package,所以在打包的时候就无法找到了。既然知道原因了,解决起来就很容易了,在这里指定一个固定的版本就可以了,我改成了4.0.7,提交代码,再重新打包就没有问题了。
建议还是使用固定版本号,这样不受版本变化带来的影响。