代码之家  ›  专栏  ›  技术社区  ›  Kirill

如何防止lombok被打包到Spring Boot jar中?

  •  0
  • Kirill  · 技术社区  · 6 年前

    如果你访问官方网站 Lombok Maven guide ,您将看到它的范围应该是 provided . 当我使用 start.spring.io 再加上Lombok,它只会 <optional>true</optional> 然后我像这样打包Spring boot应用程序,出于好奇,决定看看jar中打包了什么:

    mvn清洁包-DskipTests=true&&解压缩target/demo-0.0.1-SNAPSHOT.jar-d

    假如 optional=true .

    mvn spring引导:重新打包

    但不幸的是,它会产生以下错误:

    重新打包失败:必须提供源文件

    2 回复  |  直到 6 年前
        1
  •  16
  •   Slava Semushin    4 年前

    如果您正在打包war文件,Lombok将仅在提供的单独文件夹lib中可用,而不是在通常的lib文件夹中。

    为了从最终jar/war文件中完全排除lombok,您必须执行以下操作:

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.3.1.RELEASE</version>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    

    https://docs.spring.io/spring-boot/docs/2.3.x/maven-plugin/reference/html/#repackage-example-exclude-dependency 更多细节。

        2
  •  1
  •   Alexander.Furer    6 年前

    看起来它是您的一个依赖项的可传递依赖项。如果你确认了,你知道该怎么做。