Java 使用springboot starter POM进行开发和生产

Java 使用springboot starter POM进行开发和生产,java,spring,maven,spring-boot,Java,Spring,Maven,Spring Boot,为什么Springboot的大多数示例项目都使用没有版本的POM?没有提到正在使用的版本 例如,使用没有版本的webstarter compile "org.springframework.boot:spring-boot-starter-web" …我假设根据?我想这对开发来说很方便,但是我从来没有使用过没有版本号的依赖项,所以这感觉很奇怪 如果我使用特定版本(如下面的示例)配置依赖关系,那么在生产中使用starter包是否安全,或者starter是否应仅用于开发 compile "o

为什么Springboot的大多数示例项目都使用没有版本的POM?没有提到正在使用的版本

例如,使用没有版本的
web
starter

compile "org.springframework.boot:spring-boot-starter-web" 
…我假设根据?我想这对开发来说很方便,但是我从来没有使用过没有版本号的依赖项,所以这感觉很奇怪

如果我使用特定版本(如下面的示例)配置依赖关系,那么在生产中使用starter包是否安全,或者starter是否应仅用于开发

  compile "org.springframework.boot:spring-boot-starter-web:1.2.1" 

这些示例没有定义任何版本,因为它们由所谓的依赖关系管理部分管理。Maven已经有多年的经验了,我们补充了必要的经验,为Gradle提供类似的经验

这实际上是一个非常明智的做法:如果你有一个包含多个模块的项目,你应该在一个中心位置合理化你正在使用的版本;您还应该确保您的项目使用一致版本的依赖项或一组依赖项

这也被描述

我建议您全面使用这种做法:在每个模块中写下版本意味着您必须在需要升级时在多个位置进行更新。当然,您应该适当地确定范围:不相关的项目不应该共享同一个依赖项管理部分,因为您可能希望独立地升级库版本

要明确的是,假设为父pom指定版本,但不要在启动器上指定,因为启动器从父pom派生其版本,对吗?只有一个版本:)如果没有spring boot 1.3.4,spring boot starter web 1.3.4意味着什么?