How to prevent lombok from being packaged into Spring Boot jar?

末鹿安然 提交于 2020-08-05 11:32:31

问题


If you visit official Lombok Maven guide, you will see that it's scope should be provided. When I create a new project from scratch using start.spring.io and add Lombok, it gets only <optional>true</optional> in resulting pom. Then I package Spring boot app like this and out of curiosity decide to see what gets packaged inside of jar:

mvn clean package -DskipTests=true && unzip target/demo-0.0.1-SNAPSHOT.jar -d exploded

Lombok is packaged, does not matter if I set scope to provided or only have optional=true.

How to prevent Lombok from being included to Spring Boot jar?

My last thought was to try another goal which comes with Spring Boot plugin:

mvn spring-boot:repackage

But unfortunately it produces the following error:

repackage failed: Source file must be provided


回答1:


Lombok will only be available in a seperate folder lib-provided instead of the usual lib folder if you are packaging war file.

In order to exclude lombok completely from the final jar/war file, you have to do this:

    <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>

Please refer to Exclude a dependancy section of Spring Boot Maven Plugin https://docs.spring.io/spring-boot/docs/2.3.x/maven-plugin/reference/html/#repackage-example-exclude-dependency for more details.




回答2:


Looks like it's a transitive dependency of one of your dependency. If you confirm it, you know what to do.



来源:https://stackoverflow.com/questions/53841408/how-to-prevent-lombok-from-being-packaged-into-spring-boot-jar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!