当前位置: 首页 > 知识库问答 >
问题:

为什么来自spring-boot-dependencies的属性在子POM中不可用?

金健
2023-03-14

我正在使用Spring Boot(不使用父POM)来学习Spring文档。在我的父POM中,我正在dependenciesmanagement部分中定义spring-boot-dependencies的导入依赖项。然后,在我的子POM中,我定义了对spring-boot-starter-jersey的依赖关系,而不指定任何版本。当我查看dependency:树时,我看到所有的jersey依赖都使用spring-boot-dependencies中指定的版本。一切都很好。

现在,在我的孩子POM中,我需要添加另一个泽西依赖项。在spring-boot-dependenciesPOM中,我看到定义了一个属性jersey.version。但是,当我在子POM中使用${jersey.version}时,该属性未定义。

为什么${jersey.version}在子POM中不可用?

父POM段:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.5.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-sse</artifactId>
        <version>${jersey.version}</version>  <!-- error here -->
    </dependency>
</dependencies>

spring-boot-dependencies-1.5.0.release.pom:

<properties>
    <jersey.version>2.25.1</jersey.version>
</properties>

共有1个答案

咸亦
2023-03-14

属性仅从父POM继承。这在maven文档中有说明(不幸的是,我再也找不到引用了)。

 类似资料:
  • 我有一个Spring启动应用程序。我正在编写Junit测试。我试图从application.properties(在src/main/resources/application.properties中定义)和AppConfig(src/main/java/hello/AppConfig.java)中配置的状态bean注入值。我看到bean是autowired(通过调试器,它不是null),但没有设

  • 根据https://docs.spring.io/spring-boot/docs/2.0.0.m5/reference/html/howto-embedded-web-servers.html和spring-boot-starter-web的pom:https://search.maven.org/artifact/org.springframework.boot/spring-boot-sta

  • 我有一个多模块Maven项目,它共享一个公共父POM。其中一些模块将使用Spring Boot,但有些则不会。我不想使用Spring Boot作为我的父pom的父并且在不使用它们的模块中有不必要的依赖。 不使用Spring Boot父POM会有什么后果?所有自动配置的好东西还能用吗?我正在考虑以下的解决方案,将此放入我的父pom作为一个替代方案 但我对所有这些Maven和Spring Boot都是

  • 我有以下代码类: 但是,我得到这个编译错误: 关键字“this”在当前上下文中不可用 我可以通过简单地不使用自动属性初始值设定项来修复它,并显式地将其移动到构造函数中: 为什么会这样?在 IL 中,自动属性初始值设定项实际上不是被转换为构造函数代码吗?

  • 当前情景: 父pom有一个distributionManagement部分,其中定义了两个存储库(发布和快照);请参阅以下内容: 父pom: 基于同一pom中指定的“版本”,maven会自动识别是在发布中部署工件还是在nexus中部署快照存储库。(我相信这是使用版本是否有任何“-SNAPSHOT”后缀来完成的。) 有一个子pom定义了一些部署文件目标;请参阅以下内容: 儿童pom: 问题: 正如您

  • 问题内容: 在Spring Boot文档中看到了有关JPA配置的属性。 如果根本没有提供此属性的默认值? 这到底是做什么的?我没有找到任何很好的解释。 它使你代替使用吗?如果是,我如何告诉它允许我使用它? 谢谢! 问题答案: The OSIV Anti-Pattern OSIV(视图中的打开会话)没有让业务层决定如何最好地获取视图层所需的所有关联,而是强制持久性上下文保持打开状态,以便视图层可以触