Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin.
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'
}
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 {
}
dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }
tasks.named('test') { useJUnitPlatform() }