Package org.eclipse.maven.core

Source Code of org.eclipse.maven.core.MavenCommandRunner

package org.eclipse.maven.core;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.maven.shared.invoker.DefaultInvocationRequest;
import org.apache.maven.shared.invoker.DefaultInvoker;
import org.apache.maven.shared.invoker.InvocationOutputHandler;
import org.apache.maven.shared.invoker.InvocationRequest;
import org.apache.maven.shared.invoker.Invoker;
import org.apache.maven.shared.invoker.PrintStreamHandler;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.maven.Activator;
import org.eclipse.ui.statushandlers.StatusManager;

public class MavenCommandRunner implements Runnable {
  private MavenCommand command;
  private OutPutHandler outPutHandler;
  private String pomLocation;
 
  public MavenCommandRunner(MavenCommand command, String pomLocation, OutPutHandler outPutHandler) {
    this.command = command;
    this.pomLocation = pomLocation;
    this.outPutHandler = outPutHandler;
  }
 
  public void run() {
    try {
      InvocationRequest request = new DefaultInvocationRequest();
      request.setPomFile( new File( pomLocation ) );
      String javaHome = PreferenceResolver.resolveJavaHome();
      if ( javaHome != null )
        request.setJavaHome(new File(javaHome));
     
      List<String> lifeCycle = new ArrayList<String>();
      lifeCycle.add(command.getCommandLine());
      request.setGoals(lifeCycle);
     
      Invoker invoker = new DefaultInvoker();
      invoker.setMavenHome(new File(PreferenceResolver.resolveMavenHome()));
 
      InvocationOutputHandler outHandler = new PrintStreamHandler(outPutHandler.getPrintStream(), false);
      invoker.setOutputHandler(outHandler);
      invoker.setErrorHandler(outHandler);
     
      invoker.execute( request );
    } catch (Exception e) {
        StatusManager
        .getManager()
        .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
            "There was an error during the execution of the maven command.", e),
            StatusManager.SHOW);
      }
    }
}
TOP

Related Classes of org.eclipse.maven.core.MavenCommandRunner

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.