Skip to content

Commit 52ced43

Browse files
committed
fix: set duplicatesStrategy=INCLUDE for shadow JAR spring.factories merge
Shadow plugin 9.x defaults to DuplicatesStrategy.EXCLUDE, which drops duplicate META-INF/spring.factories entries before transformers can merge them. Setting INCLUDE allows the AppendingTransformer to see all entries and properly concatenate spring.factories from all JARs. Without this, the shadow JAR only contains spring.factories from a single dependency, causing Spring Boot auto-configuration to fail (e.g. missing RestTemplateBuilder, no embedded web server).
1 parent 6347304 commit 52ced43

File tree

5 files changed

+9
-0
lines changed

5 files changed

+9
-0
lines changed

sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import org.jetbrains.kotlin.config.KotlinCompilerVersion
23
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
34

@@ -40,6 +41,7 @@ dependencies {
4041
tasks.shadowJar {
4142
manifest { attributes["Main-Class"] = "io.sentry.samples.netflix.dgs.NetlixDgsApplication" }
4243
archiveClassifier.set("")
44+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
4345
mergeServiceFiles()
4446
append("META-INF/spring.handlers")
4547
append("META-INF/spring.schemas")

sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import org.jetbrains.kotlin.config.KotlinCompilerVersion
23
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
34

@@ -81,6 +82,7 @@ dependencies {
8182
tasks.shadowJar {
8283
manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" }
8384
archiveClassifier.set("")
85+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
8486
mergeServiceFiles()
8587
append("META-INF/spring.handlers")
8688
append("META-INF/spring.schemas")

sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import org.jetbrains.kotlin.config.KotlinCompilerVersion
23
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
34

@@ -77,6 +78,7 @@ dependencies {
7778
tasks.shadowJar {
7879
manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" }
7980
archiveClassifier.set("")
81+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
8082
mergeServiceFiles()
8183
append("META-INF/spring.handlers")
8284
append("META-INF/spring.schemas")

sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import org.jetbrains.kotlin.config.KotlinCompilerVersion
23
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
34

@@ -50,6 +51,7 @@ dependencies {
5051
tasks.shadowJar {
5152
manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" }
5253
archiveClassifier.set("")
54+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
5355
mergeServiceFiles()
5456
append("META-INF/spring.handlers")
5557
append("META-INF/spring.schemas")

sentry-samples/sentry-samples-spring-boot/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ dependencies {
7777
tasks.shadowJar {
7878
manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" }
7979
archiveClassifier.set("")
80+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
8081
mergeServiceFiles()
8182
append("META-INF/spring.handlers")
8283
append("META-INF/spring.schemas")

0 commit comments

Comments
 (0)