|
|
|
import org.springframework.boot.gradle.tasks.bundling.BootJar
|
|
|
|
import org.springframework.boot.gradle.tasks.bundling.BootWar
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id "java"
|
|
|
|
id "org.springframework.boot"
|
|
|
|
id "war"
|
|
|
|
}
|
|
|
|
|
|
|
|
apply plugin: "io.spring.dependency-management"
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven { url "file:${rootDir}/../test-repository"}
|
|
|
|
mavenCentral()
|
|
|
|
maven {
|
|
|
|
url "https://repo.spring.io/milestone"
|
|
|
|
content {
|
|
|
|
excludeGroup "org.springframework.boot"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
maven {
|
|
|
|
url "https://repo.spring.io/snapshot"
|
|
|
|
content {
|
|
|
|
excludeGroup "org.springframework.boot"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
app {
|
|
|
|
extendsFrom(configurations.runtimeClasspath)
|
|
|
|
}
|
|
|
|
jetty {
|
|
|
|
extendsFrom(app)
|
|
|
|
}
|
|
|
|
tomcat {
|
|
|
|
extendsFrom(app)
|
|
|
|
}
|
|
|
|
undertow {
|
|
|
|
extendsFrom(app)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencyManagement {
|
|
|
|
jetty {
|
|
|
|
dependencies {
|
|
|
|
dependency "jakarta.servlet:jakarta.servlet-api:5.0.0"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.register("resourcesJar", Jar) { jar ->
|
|
|
|
def nested = project.resources.text.fromString("nested")
|
|
|
|
from(nested) {
|
|
|
|
into "META-INF/resources/"
|
|
|
|
rename (".*", "nested-meta-inf-resource.txt")
|
|
|
|
}
|
|
|
|
if (!isWindows()) {
|
|
|
|
def encodedName = project.resources.text.fromString("encoded-name")
|
|
|
|
from(encodedName) {
|
|
|
|
into "META-INF/resources/"
|
|
|
|
rename (".*", 'nested-reserved-!#\\$%&()*+,:=?@[]-meta-inf-resource.txt')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
classifier = 'resources'
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compileOnly("org.eclipse.jetty:jetty-server")
|
|
|
|
compileOnly("org.springframework:spring-web")
|
|
|
|
|
|
|
|
implementation("org.springframework.boot:spring-boot-starter")
|
|
|
|
|
|
|
|
app(files(resourcesJar))
|
|
|
|
app(files(sourceSets.main.output))
|
|
|
|
app("org.springframework:spring-web")
|
|
|
|
jetty("org.springframework.boot:spring-boot-starter-jetty")
|
|
|
|
tomcat("org.springframework.boot:spring-boot-starter-tomcat")
|
|
|
|
undertow("org.springframework.boot:spring-boot-starter-undertow")
|
|
|
|
}
|
|
|
|
|
|
|
|
def boolean isWindows() {
|
|
|
|
return File.separatorChar == '\\';
|
|
|
|
}
|
|
|
|
|
|
|
|
["jetty", "tomcat", "undertow"].each { webServer ->
|
|
|
|
def configurer = { task ->
|
|
|
|
task.dependsOn resourcesJar
|
|
|
|
task.mainClass = "com.example.ResourceHandlingApplication"
|
|
|
|
task.classpath = configurations.getByName(webServer)
|
|
|
|
task.classifier = webServer
|
|
|
|
task.targetJavaVersion = project.getTargetCompatibility()
|
|
|
|
}
|
|
|
|
tasks.register("${webServer}BootJar", BootJar, configurer)
|
|
|
|
tasks.register("${webServer}BootWar", BootWar, configurer)
|
|
|
|
}
|