package de.saumya.mojo.gem;
import java.io.IOException;
import java.util.List;
import org.apache.maven.model.Resource;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import de.saumya.mojo.ruby.gems.GemException;
import de.saumya.mojo.ruby.script.ScriptException;
/**
* installs a set of given gems without resolving any transitive dependencies
*/
@Mojo( name = "generate-resources", defaultPhase = LifecyclePhase.GENERATE_RESOURCES )
public class GenerateResourcesMojo extends AbstractGemMojo {
@Parameter
protected List<String> includeRubyResources;
@Parameter
protected List<String> excludeRubyResources;
@Parameter
protected boolean includeBinStubs = false;
@Override
protected void executeWithGems() throws MojoExecutionException,
ScriptException, IOException, GemException {
if ( includeRubyResources != null) {
// add it to the classpath so java classes can find the ruby files
Resource resource = new Resource();
resource.setDirectory(project.getBasedir().getAbsolutePath());
for( String include: includeRubyResources) {
resource.addInclude(include);
}
if (excludeRubyResources != null) {
for( String exclude: excludeRubyResources) {
resource.addExclude(exclude);
}
}
addResource(project.getBuild().getResources(), resource);
}
if (includeBinStubs) {
Resource resource = new Resource();
resource.setDirectory(gemsConfig.getBinDirectory().getAbsolutePath());
resource.addInclude("*");
resource.setTargetPath("META-INF/jruby.home/bin");
addResource(project.getBuild().getResources(), resource);
}
}
}