CombinerMojo.java
package com.github.jasonmfehr.combiner.mojo;
import java.util.List;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import com.github.jasonmfehr.combiner.logging.ParameterizedLogger;
import com.github.jasonmfehr.combiner.pipeline.PipelineExecutor;
/**
* <b>combiner-maven-plugin</b>
*
* @author jasonmfehr
* @since 1.0.0
*/
@Mojo(name="combine", defaultPhase=LifecyclePhase.PROCESS_SOURCES, threadSafe=true)
public class CombinerMojo extends AbstractMojo {
/**
* list of combinations with each one representing a set of
* resources to combine and the pipeline implementations to
* use when combining them
*/
@Parameter(required=true)
private List<Combination> combinations;
/**
* determines if the plugin execution should be skipped
*/
@Parameter(property="combiner.skip", defaultValue="false")
private Boolean skip;
@Component
private MavenProject mavenProject;
@Component
private MojoExecution mojoExecution;
@Component
private PipelineExecutor pipelineExecutor;
@Component
private ParameterizedLogger logger;
public void execute() throws MojoExecutionException, MojoFailureException {
logger.setLogger(this.getLog());
if(!Boolean.TRUE.equals(this.skip)){
this.logger.debugWithParams("Entering {0} goal", mojoExecution.getGoal());
pipelineExecutor.execute(this.combinations, this.mavenProject);
this.logger.debugWithParams("Exiting {0} goal", mojoExecution.getGoal());
}else{
this.logger.info("skipping combiner-maven-plugin execution");
}
}
}