package com.fitbank.modularjs.maven; import java.io.File; import java.io.IOException; import java.util.List; import com.fitbank.modularjs.ModularJsBuilder; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import static org.apache.maven.plugins.annotations.LifecyclePhase.PREPARE_PACKAGE; /** * Process the js files present in a directory and generates the build and compressed versions. */ @Mojo(name = "process", defaultPhase = PREPARE_PACKAGE, threadSafe = true) public class ModularJsMojo extends AbstractMojo { /** * Sources output directory */ @Parameter(defaultValue = "${basedir}/src/main/webapp") private File input; /** * Sources output directory */ @Parameter(defaultValue = "${project.build.directory}/${project.build.finalName}") private File output; /** * Base directory */ @Parameter(defaultValue = "") private String baseDirectory; /** * Base directory */ @Parameter private List excludeConcat; /** * Activated */ @Parameter(defaultValue = "true") private Boolean active; public void execute() throws MojoExecutionException { if (!active) { getLog().info("Plugin is not active"); return; } try { File rootDir = new File(input, baseDirectory); File outputDir = new File(output, baseDirectory); if (!outputDir.exists()) { outputDir.mkdirs(); } if (excludeConcat != null) { ModularJsBuilder.EXCLUDE_CONCAT.addAll(excludeConcat); } ModularJsBuilder.log = getLog(); ModularJsBuilder.build(rootDir, outputDir); } catch (IOException e) { getLog().error(e); } } }