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