Lombok 不是从 spring-boot-starter-parent 继承的

问题描述 投票:0回答:1

我的项目的形式是:

|- 物料清单

|--- \ 孩子

我的 BOM 指定 sprint-boot-starter-parent 作为其父级(版本 3.1.12)。 Lombok 是此下的托管依赖项,如 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/3.1.12.

所示

Lombok 只要位于子部分中就可以正常工作,但是当我删除它时,构建会失败并显示“未找到 lombok 包”(BOM 没有明确提及 lombok)。如果是spring-boot-starter-parent的一部分,不是应该默认继承使用吗?

此外,mvn dependency:tree 从子项中删除时不会显示 lombok,但它仍然显示在 mvn help: effective-pom 上。为什么lombok不被继承?

java spring spring-boot maven lombok
1个回答
0
投票

让我解释一下。

spring-boot-starter-parent
仅包含“dependencyManagement”标签内的一大块依赖项。该块不仅包含
lombok
,还包含
activemq
oracle
等等。这些依赖项永远不会在构建时加载。它们用于定义正确的工件及其版本,以便与特定的 Spring Boot 版本一起使用。

这就是为什么您需要在项目中添加

pom.xml
您实际需要作为库加载到构建中的所有依赖项(工件)。在此依赖项中,您可以省略版本标记 - 将使用父级中定义的版本标记。

对于实际的

lombok
依赖项,请将其放入您的
pom.xml
:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.