【问题标题】:Using springboot starter POMs for development and production使用 Spring Boot Starter POM 进行开发和生产
【发布时间】:2015-02-18 05:04:52
【问题描述】:

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

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

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

...我假设根据POM 提取最新快照?我想这对开发来说很方便,但话说回来,我从来没有使用过没有版本号的依赖项,所以这感觉很奇怪。

如果我将依赖项配置为特定版本(例如下面的示例),那么在生产环境中使用启动程序包是否安全,或者是否应该仅将启动程序用于开发?

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

【问题讨论】:

    标签: java spring maven spring-boot


    【解决方案1】:

    这些示例没有定义任何版本,因为它们由所谓的依赖管理部分管理。 Maven 多年来一直拥有such support,我们添加了必要的工具来提供与 Gradle 类似的体验。

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

    这也被描述为in the documentation

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

    【讨论】:

    • 要清楚,docs 说要为父 pom 指定版本,但不是在 starters 上,因为 starters 从父代派生版本,对吗?
    • 只有一个版本 :) 如果没有 Spring Boot 1.3.4,那么 spring-boot-starter-web 1.3.4 意味着什么?
    猜你喜欢
    • 2020-05-23
    • 2015-03-10
    • 2019-10-28
    • 2022-07-30
    • 2015-07-07
    • 2016-10-08
    • 2017-02-19
    • 2017-07-30
    • 2018-07-18
    相关资源
    最近更新 更多