The Gradle DSL for layer configuration currently uses layers
twice:
bootJar {
layers {
layers "dependencies", "snapshot-dependencies", "application"
…
}
}
We'd like to simplify this to avoid the repetition of layers
, hopefully to something like the following:
bootJar {
layers("dependencies", "snapshot-dependencies", "application") {
…
}
}
Comment From: scottfrederick
Unfortunately the suggested syntax does not work because it's not possible to pass a variable-length list of strings followed by a closure. Moving the layer names to the outer layers
would require wrapping the layer names in an explicit array initializer [ ... ]
, as in
bootJar {
layers(["dependencies", "snapshot-dependencies", "application"]) {
…
}
}
This looks error prone, and the failure message provided by Gradle if the []
is omitted isn't very helpful.
Instead, we'll go with
bootJar {
layers {
layersOrder "dependencies", "snapshot-dependencies", "application"
…
}
}
Comment From: wilkinsona
Thanks, Scott. I agree on not using the []
syntax. I wonder if layerOrder
would read better than layersOrder
?