GradleUp / shadow

Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin.
https://www.gradleup.com/shadow/
Apache License 2.0
3.72k stars 393 forks source link

Unable to run spring boot shadow jar , getting no ServletWebServerFactory bean defined in the context. #899

Open souvmitra opened 8 months ago

souvmitra commented 8 months ago

Please check the User Guide before submitting "how do I do 'x'?" questions!

Shadow Version

id 'com.github.johnrengelman.shadow' version '8.1.1'

Gradle Version

Expected Behavior

The jar should run and start up the spring boot project

Actual Behavior

Web application could not be started as there was no org.springframework.boot.web.servlet.server.ServletWebServerFactory bean defined in the context.

Gradle Build Script(s)

Script


plugins { id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' id 'com.github.johnrengelman.shadow' version '8.1.1' id 'org.springframework.boot.experimental.thin-launcher' version '1.0.31.RELEASE' }

apply plugin: 'org.springframework.boot' apply plugin: 'org.springframework.boot.experimental.thin-launcher'

//assemble.dependsOn = [thinJar] //assemble.dependsOn = [shadowJar]

import com.github.jengelman.gradle.plugins.shadow.transformers.*

shadowJar { archiveClassifier = 'aws' manifest { attributes 'Main-Class': 'com.alcon.parseImplantedIOLRecords.ParseImplantedIolRecordsApplication' } // Required for Spring mergeServiceFiles() append 'META-INF/spring.handlers' append 'META-INF/spring.schemas' append 'META-INF/spring.tooling' append 'META-INF/spring-configuration-metadata.json' transform(PropertiesFileTransformer) { paths = ['META-INF/spring.factories'] mergeStrategy = "append" } configurations = [project.configurations.compileClasspath]

}

group = 'com.alcon' version = '0.0.1-SNAPSHOT'

java { sourceCompatibility = '17' }

configurations { compileOnly { extendsFrom annotationProcessor } }

repositories { mavenCentral() mavenLocal() maven { url 'https://repo.spring.io/milestone' } }

ext { set('springCloudVersion', "2023.0.0") }

dependencies {

implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-function-web'
implementation 'org.springframework.cloud:spring-cloud-function-adapter-aws:4.0.4'
implementation 'org.springframework.security:spring-security-core:6.1.2'
implementation 'io.awspring.cloud:spring-cloud-starter-aws-secrets-manager-config:2.4.4'
implementation 'org.springframework.boot:spring-boot-starter-validation:3.1.2'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.1'
implementation 'software.amazon.awssdk:ses:2.20.109'
implementation 'software.amazon.awssdk:sdk-core:2.20.109'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.0.3'
implementation 'software.amazon.awssdk:dynamodb-enhanced:2.20.109'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'com.google.guava:guava:31.1-jre'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2'

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'

}

dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }

tasks.named('test') { useJUnitPlatform() }



### Content of Shadow JAR (`jar tf <jar file>` - post link to GIST if too long)
[Uploading shadow_jar_content.txt…]()
souvmitra commented 8 months ago

shadow_jar_content.txt