spring-boot/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle
Andy Wilkinson 1e72fa202c Rework loader-tools resource generation to work with Buildship
Previously, the generated resources were added as an output to the
main source set. This worked on the command line, but resulted in
the META-INF folder that contains the loader jar not being on the
classpath of downstream projects in Eclipse.

This commit changes loader-tools to add the generated resources
as a srcDir to the main source set. This results in it appearing on
the classpath of other projects in Eclipse that depend on loader-tools
such as the Gradle plugin, thereby allowing its tests to be run in
the IDE as well as on the command line.

Fixes gh-19841
2020-01-21 12:52:02 +00:00

51 lines
1.3 KiB
Groovy

plugins {
id 'java-library'
id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
}
description = 'Spring Boot Loader Tools'
def generatedResources = "${buildDir}/generated-resources/main"
configurations {
loader
}
dependencies {
api platform(project(':spring-boot-project:spring-boot-parent'))
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")
testImplementation "org.assertj:assertj-core"
testImplementation "org.junit.jupiter:junit-jupiter"
testImplementation "org.mockito:mockito-core"
testImplementation "org.zeroturnaround:zt-zip:1.13"
}
sourceSets {
main {
resources.srcDirs generatedResources
}
}
task reproducibleLoaderJar(type: Jar) {
dependsOn configurations.loader
from {
zipTree(configurations.loader.incoming.files.filter {it.name.startsWith "spring-boot-loader" }.singleFile)
}
reproducibleFileOrder = true
preserveFileTimestamps = false
archiveFileName = 'spring-boot-loader.jar'
destinationDirectory = file("${generatedResources}/META-INF/loader")
}
processResources {
dependsOn reproducibleLoaderJar
}