Update BootWar to support Gradle's configuration cache

See gh-22922
This commit is contained in:
Andy Wilkinson
2020-10-01 15:34:00 +01:00
parent 081ef2d905
commit 83cfd3b2e6
11 changed files with 77 additions and 19 deletions

View File

@@ -18,6 +18,7 @@ package org.springframework.boot.gradle.tasks.bundling;
import java.util.Collections;
import java.util.concurrent.Callable;
import java.util.function.Function;
import org.gradle.api.Action;
import org.gradle.api.Project;
@@ -59,7 +60,7 @@ public class BootWar extends War implements BootArchive {
* Creates a new {@code BootWar} task.
*/
public BootWar() {
this.support = new BootArchiveSupport(LAUNCHER, this::isLibrary, this::resolveZipCompression);
this.support = new BootArchiveSupport(LAUNCHER, new LibrarySpec(), new ZipCompressionResolver());
this.mainClass = getProject().getObjects().property(String.class);
getWebInf().into("lib-provided", fromCallTo(this::getProvidedLibFiles));
this.support.moveModuleInfoToRoot(getRootSpec());
@@ -232,4 +233,22 @@ public class BootWar extends War implements BootArchive {
return callable;
}
private final class LibrarySpec implements Spec<FileCopyDetails> {
@Override
public boolean isSatisfiedBy(FileCopyDetails details) {
return isLibrary(details);
}
}
private final class ZipCompressionResolver implements Function<FileCopyDetails, ZipCompression> {
@Override
public ZipCompression apply(FileCopyDetails details) {
return resolveZipCompression(details);
}
}
}