diff --git a/src/main/groovy/org/jbake/gradle/JBakeProxy.groovy b/src/main/groovy/org/jbake/gradle/JBakeProxy.groovy index aed2899..2d55ad7 100644 --- a/src/main/groovy/org/jbake/gradle/JBakeProxy.groovy +++ b/src/main/groovy/org/jbake/gradle/JBakeProxy.groovy @@ -26,4 +26,6 @@ interface JBakeProxy { def getConfig() def setConfig(Object config) + + List getErrors() } \ No newline at end of file diff --git a/src/main/groovy/org/jbake/gradle/JBakeProxyImpl.groovy b/src/main/groovy/org/jbake/gradle/JBakeProxyImpl.groovy index 3a586f1..3c8555e 100644 --- a/src/main/groovy/org/jbake/gradle/JBakeProxyImpl.groovy +++ b/src/main/groovy/org/jbake/gradle/JBakeProxyImpl.groovy @@ -48,4 +48,13 @@ class JBakeProxyImpl implements JBakeProxy { def setConfig(Object config) { jbake.config = config } + + List getErrors() { + try { + return jbake.getErrors() + } catch (Exception e) { + // older versions of the Oven class do not have a getErrors() method + return [] + } + } } diff --git a/src/main/groovy/org/jbake/gradle/JBakeTask.groovy b/src/main/groovy/org/jbake/gradle/JBakeTask.groovy index 55e87b7..b9345bf 100644 --- a/src/main/groovy/org/jbake/gradle/JBakeTask.groovy +++ b/src/main/groovy/org/jbake/gradle/JBakeTask.groovy @@ -22,6 +22,7 @@ import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.Optional import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction +import org.gradle.api.tasks.TaskExecutionException import java.lang.reflect.Constructor @@ -49,6 +50,11 @@ class JBakeTask extends DefaultTask { jbake.prepare() mergeConfiguration() jbake.jbake() + List errors = jbake.getErrors() + if (errors) { + errors.each { logger.error(it) } + throw new TaskExecutionException(this, new IllegalStateException(errors.join('\n'))) + } } private JBakeProxy createJbake() { @@ -58,7 +64,6 @@ class JBakeTask extends DefaultTask { } private mergeConfiguration() { - //config = new CompositeConfiguration([createMapConfiguration(), jbake.getConfig()]) def delegate = loadClass('org.apache.commons.configuration.CompositeConfiguration') Constructor constructor = delegate.getConstructor(Collection) def config = constructor.newInstance([createMapConfiguration(), jbake.getConfig()])