为什么Springboot的大多数示例项目都使用starter没有版本的POM? documentation未提及正在使用的版本。
例如,在没有版本的情况下使用web
启动器......
compile "org.springframework.boot:spring-boot-starter-web"
...我假设根据POM提取最新快照?我认为这对于开发来说很方便,但是我再也没有使用没有版本号的依赖项,所以这感觉很奇怪。
如果我使用特定版本(例如下面的示例)配置依赖项,或者启动器是否应仅用于开发,那么使用入门包进行生产是否安全?
compile "org.springframework.boot:spring-boot-starter-web:1.2.1"
答案 0 :(得分:2)
示例未定义任何版本,因为这些版本由所谓的依赖关系管理部分管理。 Maven已经such support多年了,我们添加了为Gradle提供类似体验的必要条件。
这实际上是一个非常理智的做法:如果你有一个包含多个模块的项目,你应该合理化你在一个中心位置使用的版本;您还应该确保您的项目使用一致的依赖项版本或一组依赖项。
这也被描述为in the documentation
我建议您全面使用这种做法:在每个模块中记下版本意味着您需要在需要升级时在多个位置更新该版本。当然,您应该适当地确定范围:不相关的项目不应该共享相同的依赖关系管理部分,因为您可能希望独立地升级库版本。