com.github.spullara.mustache.mojo.MustacheValidationMojo Maven / Gradle / Ivy
package com.github.spullara.mustache.mojo;
import com.github.mustachejava.DefaultMustacheFactory;
import com.github.mustachejava.MustacheException;
import com.github.mustachejava.MustacheFactory;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner;
import org.codehaus.plexus.compiler.util.scan.StaleSourceScanner;
import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Collections;
import java.util.Set;
@Mojo(name = "validate", defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
public class MustacheValidationMojo extends AbstractMojo {
@Parameter(defaultValue = "src/main/resources")
private File sourceDirectory;
@Parameter(defaultValue = "target/classes")
private File outputDirectory;
@Parameter(defaultValue = "mustache")
private String extension;
@Parameter(defaultValue = "false")
private boolean includeStale;
public void execute() throws MojoExecutionException, MojoFailureException {
SourceInclusionScanner scanner = includeStale
? new StaleSourceScanner(1024, Collections.singleton("**/*." + extension), Collections.emptySet())
: new SimpleSourceInclusionScanner(Collections.singleton("**/*." + extension), Collections.emptySet());
scanner.addSourceMapping(new SuffixMapping("." + extension, "." + extension));
MustacheFactory mustacheFactory = new DefaultMustacheFactory();
try {
Set files = scanner.getIncludedSources(sourceDirectory, outputDirectory);
for (File file : files) {
try {
mustacheFactory.compile(new FileReader(file), file.getAbsolutePath());
} catch (MustacheException e) {
throw new MojoFailureException(e.getMessage(), e);
}
}
} catch (InclusionScanException | FileNotFoundException e) {
throw new MojoExecutionException(e.getMessage());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy