From 627c0b1031334299905d6aa804333529a17ce1ad Mon Sep 17 00:00:00 2001 From: Marco Pens Date: Mon, 15 Jun 2020 22:20:39 -0300 Subject: [PATCH] Document how to exclude an annotation processor with Maven See gh-22000 --- .../main/asciidoc/spring-boot-features.adoc | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 8dfdf747dc..e0e2dc8ab7 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -7583,15 +7583,42 @@ If you do it that way, the library is not provided and, by default, Spring Boot Spring Boot uses an annotation processor to collect the conditions on auto-configurations in a metadata file (`META-INF/spring-autoconfigure-metadata.properties`). If that file is present, it is used to eagerly filter auto-configurations that do not match, which will improve startup time. -It is recommended to add the following dependency in a module that contains auto-configurations: +It is recommended to add the following dependency in a module that contains auto-configurations and exclude it in the `spring-boot-maven-plugin` to prevent the repacking task from adding the dependency into the fat jar: [source,xml,indent=0,subs="verbatim,quotes,attributes"] ---- - - org.springframework.boot - spring-boot-autoconfigure-processor - true - + + ... + + + org.springframework.boot + spring-boot-autoconfigure-processor + + + + ... + + ... + + org.springframework.boot + spring-boot-maven-plugin + + + ... + + org.springframework.boot + spring-boot-autoconfigure-processor + + + + ... + + ... + + ... + + ... + ---- With Gradle 4.5 and earlier, the dependency should be declared in the `compileOnly` configuration, as shown in the following example: