import org.springframework.boot.gradle.tasks.bundling.BootJar plugins { id "java" id "org.springframework.boot" version "3.3.0-SNAPSHOT" } apply plugin: "io.spring.dependency-management" repositories { maven { url "file:${rootDir}/../int-test-maven-repository"} mavenCentral() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } } configurations { app { extendsFrom(configurations.runtimeClasspath) } tomcat { extendsFrom(app) } undertow { extendsFrom(app) } } dependencies { compileOnly("jakarta.servlet:jakarta.servlet-api:6.0.0") implementation("org.springframework.boot:spring-boot-starter-web") { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } implementation("org.springframework.boot:spring-boot-starter-actuator") app(files(sourceSets.main.output)) app('org.springframework.boot:spring-boot-starter-web') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } tomcat("org.springframework.boot:spring-boot-starter-tomcat") undertow("org.springframework.boot:spring-boot-starter-undertow") } ["tomcat", "undertow"].each { webServer -> def configurer = { task -> task.mainClass = "org.springframework.boot.sni.server.SniServerApplication" task.classpath = configurations.getByName(webServer) task.archiveClassifier = webServer task.targetJavaVersion = project.getTargetCompatibility() } tasks.register("${webServer}ServerApp", BootJar, configurer) }