diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java b/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java index bfcc9d535..7f486f711 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java @@ -20,6 +20,7 @@ import java.io.File; import java.util.Collections; import java.util.Set; +import java.util.concurrent.Callable; import javax.annotation.Nullable; import org.gradle.api.file.DirectoryProperty; import org.gradle.api.file.FileCollection; @@ -74,7 +75,12 @@ private CliEvaluator createCliEvaluator() { public FileCollection getEffectiveOutputFiles() { return getObjects() .fileCollection() - .from(getProviders().provider(() -> nullToEmpty(createCliEvaluator().getOutputFiles()))); + .from( + getProviders() + .provider( + () -> + exceptionToEmpty( + () -> nullToEmpty(createCliEvaluator().getOutputFiles())))); } @OutputDirectories @@ -84,13 +90,24 @@ public FileCollection getEffectiveOutputDirs() { .fileCollection() .from( getProviders() - .provider(() -> nullToEmpty(createCliEvaluator().getOutputDirectories()))); + .provider( + () -> + exceptionToEmpty( + () -> nullToEmpty(createCliEvaluator().getOutputDirectories())))); } private static Set nullToEmpty(@Nullable Set set) { return set == null ? Collections.emptySet() : set; } + private static Set exceptionToEmpty(Callable> provider) { + try { + return provider.call(); + } catch (Exception e) { + return Collections.emptySet(); + } + } + @Override protected void doRunTask() { //noinspection ResultOfMethodCallIgnored