You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.5 KiB
92 lines
2.5 KiB
plugins { |
|
id "java-library" |
|
id "org.springframework.boot.conventions" |
|
id "org.springframework.boot.deployed" |
|
} |
|
|
|
description = "Spring Boot Loader Tools" |
|
|
|
def generatedResources = "${buildDir}/generated-resources/main" |
|
|
|
configurations { |
|
loader { |
|
extendsFrom dependencyManagement |
|
transitive = false |
|
} |
|
loaderClassic { |
|
extendsFrom dependencyManagement |
|
transitive = false |
|
} |
|
jarmode { |
|
extendsFrom dependencyManagement |
|
transitive = false |
|
} |
|
} |
|
|
|
dependencies { |
|
api("org.apache.commons:commons-compress") |
|
api("org.springframework:spring-core") |
|
|
|
compileOnly("ch.qos.logback:logback-classic") |
|
|
|
loader(project(":spring-boot-project:spring-boot-tools:spring-boot-loader")) |
|
loaderClassic(project(":spring-boot-project:spring-boot-tools:spring-boot-loader-classic")) |
|
|
|
jarmode(project(":spring-boot-project:spring-boot-tools:spring-boot-jarmode-tools")) |
|
|
|
testImplementation("org.assertj:assertj-core") |
|
testImplementation("org.junit.jupiter:junit-jupiter") |
|
testImplementation("org.mockito:mockito-core") |
|
testImplementation("org.zeroturnaround:zt-zip:1.13") |
|
} |
|
|
|
task reproducibleLoaderJar(type: Jar) { |
|
dependsOn configurations.loader |
|
from { |
|
zipTree(configurations.loader.incoming.files.singleFile).matching { |
|
exclude "META-INF/LICENSE.txt" |
|
exclude "META-INF/NOTICE.txt" |
|
exclude "META-INF/spring-boot.properties" |
|
} |
|
} |
|
reproducibleFileOrder = true |
|
preserveFileTimestamps = false |
|
archiveFileName = "spring-boot-loader.jar" |
|
destinationDirectory = file("${generatedResources}/META-INF/loader") |
|
} |
|
|
|
task reproducibleLoaderClassicJar(type: Jar) { |
|
dependsOn configurations.loaderClassic |
|
from { |
|
zipTree(configurations.loaderClassic.incoming.files.singleFile).matching { |
|
exclude "META-INF/LICENSE.txt" |
|
exclude "META-INF/NOTICE.txt" |
|
exclude "META-INF/spring-boot.properties" |
|
} |
|
} |
|
reproducibleFileOrder = true |
|
preserveFileTimestamps = false |
|
archiveFileName = "spring-boot-loader-classic.jar" |
|
destinationDirectory = file("${generatedResources}/META-INF/loader") |
|
} |
|
|
|
task toolsJar(type: Sync) { |
|
dependsOn configurations.jarmode |
|
from { |
|
file(configurations.jarmode.incoming.files.singleFile) |
|
} |
|
rename({ "spring-boot-jarmode-tools.jar" }) |
|
into(file("${generatedResources}/META-INF/jarmode")) |
|
} |
|
|
|
sourceSets { |
|
main { |
|
output.dir(generatedResources, builtBy: [toolsJar, reproducibleLoaderJar, reproducibleLoaderClassicJar]) |
|
} |
|
} |
|
|
|
compileJava { |
|
if ((!project.hasProperty("toolchainVersion")) && JavaVersion.current() == JavaVersion.VERSION_1_8) { |
|
options.compilerArgs += ['-Xlint:-sunapi', '-XDenableSunApiLintControl'] |
|
} |
|
}
|
|
|