Package de.saumya.mojo.rake

Source Code of de.saumya.mojo.rake.RakeMojo

package de.saumya.mojo.rake;

import java.io.File;
import java.io.IOException;

import org.apache.maven.plugin.MojoExecutionException;

import de.saumya.mojo.gem.AbstractGemMojo;
import de.saumya.mojo.ruby.gems.GemException;
import de.saumya.mojo.ruby.script.Script;
import de.saumya.mojo.ruby.script.ScriptException;

/**
* maven wrapper around the rake command.
*
* @goal rake
* @requiresDependencyResolution test
*/
public class RakeMojo extends AbstractGemMojo {

    /**
     * rakefile to be used for the rake command.
     *
     * @parameter default-value="${rake.file}"
     */
    private final File              rakefile    = null;

    /**
     * arguments for the rake command.
     *
     * @parameter default-value="${rake.args}"
     */
    private final String            rakeArgs    = null;

    /**
     * rake version used when there is no pom. defaults to latest version.
     * DEPRECATED: declare a gem dependency with the desired version instead
     *
     * @parameter default-value="${rake.version}"
     */
    @Deprecated
    private final String            rakeVersion = null;

    /**
     * @parameter default-value="${repositorySystemSession}"
     * @readonly
     */
    private Object repoSession;

    @Override
    public void executeWithGems() throws MojoExecutionException,
            ScriptException, IOException, GemException {
        if (this.project.getBasedir() == null) {
           
            this.gemsInstaller.installGem("rake",
                                          this.rakeVersion,
                                          this.repoSession,
                                          this.localRepository,
                                          getRemoteRepos() );

        }
        final Script script = this.factory.newScriptFromJRubyJar("rake");
        if (this.rakefile != null){
            script.addArg("-f", this.rakefile);
        }
       
        if (this.rakeArgs != null) {
            script.addArgs(this.rakeArgs);
        }
        if (this.args != null) {
            script.addArgs(this.args);
        }

        script.executeIn(launchDirectory());
    }
}
TOP

Related Classes of de.saumya.mojo.rake.RakeMojo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.