org.apache.maven.shared.invoker.DefaultInvoker Java Examples

The following examples show how to use org.apache.maven.shared.invoker.DefaultInvoker. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Builder.java    From wad with MIT License 6 votes vote down vote up
public Builder() {
    this.invoker = new DefaultInvoker();
    this.invoker.setLogger(new SilentLogger());
    this.invoker.setOutputHandler((line) -> {
    });
    List<String> goals = Arrays.asList("clean", "package");
    Properties properties = new Properties();
    properties.put("maven.test.skip", String.valueOf(true));
    this.request = new DefaultInvocationRequest();
    this.request.setPomFile(new File("./pom.xml"));
    this.request.setGoals(goals);
    this.request.setBatchMode(true);
    this.request.setProperties(properties);
    this.request.setThreads(System.getProperty("threads", "1"));
    this.request.setShowErrors(true);
}
 
Example #2
Source File: ExecuteUtil.java    From quarkus with Apache License 2.0 6 votes vote down vote up
public static void executeMaven(File projectDirectory, CommandInvocation invocation, String buildTarget) {
    String mvnPath = findExecutable("mvn");
    System.setProperty("maven.home", mvnPath);

    InvocationRequest request = new DefaultInvocationRequest();
    request.setPomFile(new File(projectDirectory.getAbsolutePath() + File.separatorChar + "pom.xml"));
    request.setGoals(Collections.singletonList(buildTarget));

    Invoker invoker = new DefaultInvoker();

    InvocationResult result = null;
    try {
        result = invoker.execute(request);
    } catch (MavenInvocationException e) {
        invocation.println("Failed during invocation: " + e.getMessage());
    }

    if (result.getExitCode() != 0) {
        invocation.println("Build failed.");
    }
}
 
Example #3
Source File: NativeBuildMojo.java    From client-maven-plugin with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
public void execute() throws MojoExecutionException {
    getLog().debug("Start building");

    // prepare the execution:
    final InvocationRequest invocationRequest = new DefaultInvocationRequest();
    invocationRequest.setProfiles(project.getActiveProfiles().stream()
            .map(Profile::getId)
            .collect(Collectors.toList()));
    invocationRequest.setPomFile(new File(pom));

    invocationRequest.setGoals(Arrays.asList("client:compile", "client:link"));

    final Invoker invoker = new DefaultInvoker();
    // execute:
    try {
        final InvocationResult invocationResult = invoker.execute(invocationRequest);
        if (invocationResult.getExitCode() != 0) {
            throw new MojoExecutionException("Error, client:build failed", invocationResult.getExecutionException());
        }
    } catch (MavenInvocationException e) {
        e.printStackTrace();
        throw new MojoExecutionException("Error", e);
    }

}
 
Example #4
Source File: TestPackager.java    From justtestlah with Apache License 2.0 6 votes vote down vote up
/**
 * Creates a test package for AWS Devicefarm.
 *
 * @param logger {@link InvokerLogger} logger to be used for the Maven build output
 * @param clean true, if the target directory should be cleaned (forcing recompilation)
 * @return {@link File} of the ZIP package to be used by AWS Devicefarm
 * @throws MavenInvocationException error during Maven build
 */
protected File packageProjectForDeviceFarm(InvocationOutputHandler logger, boolean clean)
    throws MavenInvocationException {
  InvocationRequest request = new DefaultInvocationRequest();
  request.setPomFile(
      new File(properties.getProperty("aws.demo.path") + File.separator + "pom.xml"));
  request.setProfiles(List.of("aws"));
  if (clean) {
    request.setGoals(List.of("clean", "package"));
  } else {
    request.setGoals(List.of("package"));
  }
  request.setUpdateSnapshots(true);
  new DefaultInvoker().setOutputHandler(logger).execute(request);
  return new File(
      properties.getProperty("aws.demo.path")
          + File.separator
          + "target"
          + File.separator
          + properties.getProperty("aws.testpackage.name")
          + ".zip");
}
 
Example #5
Source File: ProjectGenerator.java    From fabric8-forge with Apache License 2.0 6 votes vote down vote up
public File getArtifactJar(String groupId, String artifactId, String version) {
    Properties properties = new Properties();
    properties.put("groupId", groupId);
    properties.put("artifactId", artifactId);
    properties.put("version", version);

    InvocationRequest request = new DefaultInvocationRequest();
    request.setLocalRepositoryDirectory(localMavenRepo);
    request.setInteractive(false);
    List<String> goalList = Arrays.asList("org.apache.maven.plugins:maven-dependency-plugin:2.10:get");
    request.setGoals(goalList);
    request.setProperties(properties);

    try {
        Invoker invoker = new DefaultInvoker();
        InvocationResult result = invoker.execute(request);
        int exitCode = result.getExitCode();
        LOG.info("maven result " + exitCode + " exception: " + result.getExecutionException());
        assertEquals("Failed to invoke maven goals: " + goalList + " with properties: " + properties + ". Exit Code: ", 0, exitCode);
    } catch (MavenInvocationException e) {
        fail("Failed to invoke maven goals: " + goalList + " with properties: " + properties + ". Exception " + e, e);
    }
    String path = groupId.replace('.', '/') + "/" + artifactId + "/" + version + "/" + artifactId + "-" + version + ".jar";
    return new File(localMavenRepo, path);
}
 
Example #6
Source File: ProjectGenerator.java    From fabric8-forge with Apache License 2.0 6 votes vote down vote up
protected void runMavenGoals(File outputDir, String... goals) throws MavenInvocationException {
    List<String> goalList = Arrays.asList(goals);
    LOG.info("Invoking maven with goals: " + goalList + " in folder: " + outputDir);
    File pomFile = new File(outputDir, "pom.xml");

    InvocationRequest request = new DefaultInvocationRequest();
    request.setLocalRepositoryDirectory(localMavenRepo);
    request.setInteractive(false);
    request.setPomFile(pomFile);
    request.setGoals(goalList);

    // lets use a dummy service name to avoid it being too long
    request.setMavenOpts("-Dfabric8.service.name=dummy-name");

    Invoker invoker = new DefaultInvoker();
    InvocationResult result = invoker.execute(request);
    int exitCode = result.getExitCode();
    LOG.info("maven result " + exitCode + " exception: " + result.getExecutionException());
    if (exitCode != 0) {
        LOG.error("Failed to invoke maven goals: " + goalList + " in folder: " + outputDir + ". Exit Code: " + exitCode);
        failedFolders.add(outputDir);
    }
}
 
Example #7
Source File: MavenRun.java    From edx-app-android with Apache License 2.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
	InvocationRequest request = new DefaultInvocationRequest();
	request.setPomFile(new File("pom.xml"));
	if (args.length > 0) {
		if (args[0] != null && args[1] != null) {
			Properties projectProperties = new Properties();
			projectProperties.setProperty("deviceOS", args[0]);
			projectProperties.setProperty("appPath", args[1]);
			projectProperties.setProperty("osVersion", args[2]);
			projectProperties.setProperty("deviceName", args[3]);
			projectProperties.setProperty("udid", args[4]);
			request.setProperties(projectProperties);
		}
	}

	request.setGoals(Collections.singletonList("test"));
	Invoker invoker = new DefaultInvoker();
	invoker.setMavenHome(new File(System.getenv("M2_HOME")));
	try {
		invoker.execute(request);
	} catch (MavenInvocationException e) {
		e.printStackTrace();
	}
}
 
Example #8
Source File: AbstractSundrioMojo.java    From sundrio with Apache License 2.0 6 votes vote down vote up
void backGroundBuild(MavenProject project) throws MojoExecutionException {
    MavenExecutionRequest executionRequest = session.getRequest();

    InvocationRequest request = new DefaultInvocationRequest();
    request.setBaseDirectory(project.getBasedir());
    request.setPomFile(project.getFile());
    request.setGoals(executionRequest.getGoals());
    request.setRecursive(false);
    request.setInteractive(false);

    request.setProfiles(executionRequest.getActiveProfiles());
    request.setProperties(executionRequest.getUserProperties());
    Invoker invoker = new DefaultInvoker();
    try {
        InvocationResult result = invoker.execute(request);
        if (result.getExitCode() != 0) {
            throw new IllegalStateException("Error invoking Maven goals:[" + StringUtils.join(executionRequest.getGoals(), ", ") + "]", result.getExecutionException());
        }
    } catch (MavenInvocationException e) {
        throw new IllegalStateException("Error invoking Maven goals:[" + StringUtils.join(executionRequest.getGoals(), ", ") + "]", e);
    }
}
 
Example #9
Source File: LibertySettingsDirectoryTest.java    From ci.maven with Apache License 2.0 5 votes vote down vote up
@Test
public void testLibertyConfigDirInvalidDir() throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();

    File pomFilePath = new File("../pom.xml");
    Document pomFile = builder.parse(pomFilePath);
    pomFile.getDocumentElement().normalize();

    XPathFactory xpathFactory = XPathFactory.newInstance();
    XPath xpath = xpathFactory.newXPath();
    String pomVersion = xpath.evaluate("/project/build/plugins/plugin[artifactId='liberty-maven-plugin']/version", pomFile);

    Properties props = new Properties();
    props.put("pluginVersion", pomVersion);

    InvocationRequest request = new DefaultInvocationRequest()
    .setPomFile( new File("../src/test/resources/invalidDirPom.xml"))
    .setGoals( Collections.singletonList("package"))
    .setProperties(props);

    InvocationOutputHandler outputHandler = new InvocationOutputHandler(){
        @Override
        public void consumeLine(String line) throws IOException {
            if (line.contains("<libertySettingsFolder> must be a directory")) {
                throw new IOException("Caught expected MojoExecutionException - " + line);
            }
        }
    };

    Invoker invoker = new DefaultInvoker();
    invoker.setOutputHandler(outputHandler);

    InvocationResult result = invoker.execute( request );

    assertTrue("Exited successfully, expected non-zero exit code.", result.getExitCode() != 0);
    assertNotNull("Expected MojoExecutionException to be thrown.", result.getExecutionException());
}
 
Example #10
Source File: AbstractSchemaGeneratorMojoTest.java    From jpa-schema-maven-plugin with Apache License 2.0 5 votes vote down vote up
protected void compileJpaModelSources(File pomfile) throws MavenInvocationException {
    Properties properties = new Properties();
    properties.setProperty("plugin.version", System.getProperty("plugin.version"));

    InvocationRequest request = new DefaultInvocationRequest();
    request.setPomFile(pomfile);
    request.setGoals(Collections.singletonList("compile"));
    request.setProperties(properties);

    Invoker invoker = new DefaultInvoker();
    invoker.execute(request);
}
 
Example #11
Source File: MavenJarResolver.java    From beakerx with Apache License 2.0 5 votes vote down vote up
private Invoker getInvoker(MavenInvocationSilentOutputHandler mavenInvocationSilentOutputHandler) {
  Invoker invoker = new DefaultInvoker();
  String mvn = findMvn();
  System.setProperty("maven.home", mvn);
  invoker.setLogger(new MavenJarResolverSilentLogger());
  invoker.setOutputHandler(mavenInvocationSilentOutputHandler);
  invoker.setLocalRepositoryDirectory(getOrCreateFile(this.commandParams.getPathToCache()));
  return invoker;
}
 
Example #12
Source File: ArchetypeTest.java    From ipaas-quickstarts with Apache License 2.0 5 votes vote down vote up
protected static int invokeMaven(String[] args, String outDir, File logFile) {
    List<String> goals = Arrays.asList(args);
    String commandLine = Strings.join(goals, " ");

    InvocationResult result = null;
    try {
        File dir = new File(outDir);

        InvocationRequest request = new DefaultInvocationRequest();
        request.setGoals(goals);

        InvocationOutputHandler outputHandler = new SystemOutAndFileHandler(logFile);
        outputHandler.consumeLine("");
        outputHandler.consumeLine("");
        outputHandler.consumeLine(dir.getName() + " : starting: mvn " + commandLine);
        outputHandler.consumeLine("");
        request.setOutputHandler(outputHandler);
        request.setErrorHandler(outputHandler);

        DefaultInvoker invoker = new DefaultInvoker();
        request.setPomFile(new File(dir, "pom.xml"));
        result = invoker.execute(request);
        CommandLineException executionException = result.getExecutionException();
        if (executionException != null) {
            LOG.error("Failed to invoke maven with: mvn " + commandLine + ". " + executionException, executionException);
        }
    } catch (Exception e) {
        LOG.error("Failed to invoke maven with: mvn " + commandLine + ". " + e, e);
    }
    return result == null ? 1 : result.getExitCode();
}
 
Example #13
Source File: MavenExecutorImpl.java    From developer-studio with Apache License 2.0 5 votes vote down vote up
public boolean executeMavenGoal(File projectPath, List<String> goals,
		boolean isOffline) {
	InvocationRequest request = new DefaultInvocationRequest();

	if (!projectPath.exists()) {
		projectPath.mkdirs();
	}

	request.setPomFile(new File(projectPath, POM_XML));

	if (goals == null) {
		goals = getDefaultMavenGoals();
	}
	request.setGoals(goals);
	Invoker invoker = new DefaultInvoker();
	request.setOffline(isOffline);

	try {
		InvocationResult result = invoker.execute(request);
		if (result.getExecutionException() == null) {
			if (result.getExitCode() != 0) {
				request.setOffline(!isOffline);
				result = invoker.execute(request);
				if (result.getExitCode() == 0) {
					return true;
				} else {
					final String errorMessage = "No maven Project found at "
							+ projectPath;
					log.error(errorMessage);
					throw new MavenInvocationException(errorMessage);
				}
			}
			return true;
		}
	} catch (MavenInvocationException e) {
		log.error("Maven invocation failed", e);
	}
	return false;
}
 
Example #14
Source File: MSF4JDeployerTest.java    From msf4j with Apache License 2.0 5 votes vote down vote up
/**
 * compile the sample project in the given filepath.
 * @param projectFile sample project pom file location
 * @throws MavenInvocationException
 */
private void compileTestSamples(File projectFile) throws MavenInvocationException {
    InvocationRequest request = new DefaultInvocationRequest();
    request.setPomFile(projectFile);
    request.setGoals(Collections.singletonList("install"));

    Invoker invoker = new DefaultInvoker();
    String mavenLocalRepo = System.getProperty("maven.repo.local");
    if (mavenLocalRepo != null && !mavenLocalRepo.isEmpty()) {
        invoker.setLocalRepositoryDirectory(new File(mavenLocalRepo));
    }
    invoker.execute(request);
}
 
Example #15
Source File: MavenModule.java    From maven-artifacts-uploader with Apache License 2.0 5 votes vote down vote up
@Override
protected void configure() {
    bind(Uploader.class).to(MavenUploader.class);
    bind(new TypeLiteral<List<MavenDeployOption>>(){}).toProvider(MavenCommandsProvider.class);
    bind(Invoker.class).to(DefaultInvoker.class).asEagerSingleton();
    bind(InvocationRequest.class).toProvider(InvocationRequestProvider.class);
    bind(String.class).annotatedWith(Names.named("deploy-start-command")).toInstance("deploy:deploy-file -q ");
    bind(OptionalArgs.class).asEagerSingleton();
}
 
Example #16
Source File: BuildProject.java    From unleash-maven-plugin with Eclipse Public License 1.0 5 votes vote down vote up
private Invoker setupInvoker() {
  Invoker invoker = new DefaultInvoker();
  File calculatedMavenHome = ReleaseUtil.getMavenHome(Optional.fromNullable(this.mavenHome));
  if (calculatedMavenHome != null) {
    this.log.debug("\tUsing maven home: " + calculatedMavenHome.getAbsolutePath());
    invoker.setMavenHome(calculatedMavenHome);
  }
  return invoker;
}
 
Example #17
Source File: RunnableMavenInvoker.java    From repairnator with MIT License 5 votes vote down vote up
@Override
public void run() {
    InvocationRequest request = new DefaultInvocationRequest();
    request.setPomFile(new File(this.mavenHelper.getPomFile()));
    request.setGoals(Arrays.asList(this.mavenHelper.getGoal()));
    Properties props = this.mavenHelper.getProperties();
    if (System.getenv("M2_HOME") == null) {
        // sensible value
        // https://stackoverflow.com/questions/14793015/programmatically-launch-m2e-maven-command
        String mavenHome = RepairnatorConfig.getInstance().getMavenHome();
        System.out.println("M2_HOME not found, using provided input value instead - " + mavenHome);
        System.setProperty("maven.home", mavenHome);
    } else if ( System.getProperty("maven.home") == null ) {
        System.setProperty("maven.home", System.getenv("M2_HOME"));
    }
    request.setProperties(props);
    request.setBatchMode(true);
    request.setShowErrors(true);

    Invoker invoker = new DefaultInvoker();

    if (this.mavenHelper.getErrorHandler() != null) {
        invoker.setErrorHandler(this.mavenHelper.getErrorHandler());
    }
    invoker.setOutputHandler(this.mavenHelper.getOutputHandler());

    try {
        InvocationResult result = invoker.execute(request);
        this.exitCode = result.getExitCode();
    } catch (MavenInvocationException e) {
        this.logger.error("Error while executing goal " + this.mavenHelper.getGoal()
                + " on the following pom file: " + this.mavenHelper.getPomFile()
                + ". Properties: " + this.mavenHelper.getProperties());
        this.logger.error(e.getMessage());
        this.mavenHelper.getInspector().getJobStatus().addStepError(this.mavenHelper.getName(), e.getMessage());
        this.exitCode = MavenHelper.MAVEN_ERROR;
    }
}
 
Example #18
Source File: MavenModule.java    From maven-artifacts-uploader with Apache License 2.0 5 votes vote down vote up
@Override
protected void configure() {
    bind(Uploader.class).to(MavenUploader.class);
    bind(new TypeLiteral<List<MavenDeployOption>>(){}).toProvider(MavenCommandsProvider.class);
    bind(Invoker.class).to(DefaultInvoker.class).asEagerSingleton();
    bind(InvocationRequest.class).toProvider(InvocationRequestProvider.class);
    bind(String.class).annotatedWith(Names.named("deploy-start-command")).toInstance("deploy:deploy-file -q ");
    bind(OptionalArgs.class).asEagerSingleton();
}
 
Example #19
Source File: MojoTestBase.java    From quarkus with Apache License 2.0 5 votes vote down vote up
public static Invoker initInvoker(File root) {
    Invoker invoker = new DefaultInvoker();
    invoker.setWorkingDirectory(root);
    String repo = System.getProperty("maven.repo");
    if (repo == null) {
        repo = new File(System.getProperty("user.home"), ".m2/repository").getAbsolutePath();
    }
    invoker.setLocalRepositoryDirectory(new File(repo));
    return invoker;
}
 
Example #20
Source File: ReleaseInvoker.java    From multi-module-maven-release-plugin with MIT License 4 votes vote down vote up
public ReleaseInvoker(final Log log, final MavenProject project) {
	this(log, project, new DefaultInvocationRequest(), new DefaultInvoker());
}
 
Example #21
Source File: EndpointsGetClientLib.java    From appengine-maven-plugin with Apache License 2.0 4 votes vote down vote up
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
  getLog().info("");
  getLog().info("Google App Engine Java SDK - Generate endpoints get client lib");

  List<String> classNames = getAPIServicesClasses();
  if (classNames.isEmpty()) {
    getLog().info("No Endpoints classes detected.");
    return;
  }

  try {
    executeEndpointsCommand("get-client-lib", new String[0],
            classNames.toArray(new String[classNames.size()]));
    File webInf = new File(outputDirectory + "/WEB-INF");
    if (webInf.exists() && webInf.isDirectory()) {
      File[] files = webInf.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
          return name.endsWith("-java.zip");
        }
      });
      File mavenProjectsDir = new File(clientLibsDirectory);
      mavenProjectsDir.mkdirs();
      for (File source : files) {
        File pomFile = unjarMavenProject(source, mavenProjectsDir);
        if (pomFile != null) {
          getLog().info("BUILDING Endpoints Client Library from: " + pomFile);
          InvocationRequest request = new DefaultInvocationRequest();
          request.setPomFile(pomFile);
          request.setGoals(Collections.singletonList("install"));
          Invoker invoker = new DefaultInvoker();
          InvocationResult result = invoker.execute(request);
          if (result.getExitCode() != 0) {
            throw new IllegalStateException("Build failed.");
          }
          getLog().info("Endpoint get client lib generation and compilation done.");

        }
      }
    }
  } catch (MojoExecutionException e) {
    getLog().error(e);
    throw new MojoExecutionException(
            "Error while generating Google App Engine endpoint get client lib", e);
  } catch (MavenInvocationException ex) {
    Logger.getLogger(EndpointsGetClientLib.class.getName()).log(Level.SEVERE, null, ex);
  }
}
 
Example #22
Source File: EndpointsGetClientLib.java    From gcloud-maven-plugin with Apache License 2.0 4 votes vote down vote up
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
  getLog().info("");
  getLog().info("Google App Engine Java SDK - Generate endpoints get client lib");

  List<String> classNames = getAPIServicesClasses();
  if (classNames.isEmpty()) {
    getLog().info("No Endpoints classes detected.");
    return;
  }

  try {
    executeEndpointsCommand("get-client-lib", new String[0],
        classNames.toArray(new String[classNames.size()]));
    File webInf = new File(output_directory + "/WEB-INF");
    if (webInf.exists() && webInf.isDirectory()) {
      File[] files = webInf.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
          return name.endsWith("-java.zip");
        }
      });
      File mavenProjectsDir = new File(client_libs_directory);
      mavenProjectsDir.mkdirs();
      for (File source : files) {
        File pomFile = unjarMavenProject(source, mavenProjectsDir);
        if (pomFile != null) {
          getLog().info("BUILDING Endpoints Client Library from: " + pomFile);
          InvocationRequest request = new DefaultInvocationRequest();
          request.setPomFile(pomFile);
          request.setGoals(Collections.singletonList("install"));
          Invoker invoker = new DefaultInvoker();
          InvocationResult result = invoker.execute(request);
          if (result.getExitCode() != 0) {
            throw new IllegalStateException("Build failed.");
          }
          getLog().info("Endpoint get client lib generation and compilation done.");

        }
      }
    }
  } catch (MojoExecutionException e) {
    getLog().error(e);
    throw new MojoExecutionException(
        "Error while generating Google App Engine endpoint get client lib", e);
  } catch (MavenInvocationException ex) {
    Logger.getLogger(EndpointsGetClientLib.class.getName()).log(Level.SEVERE, null, ex);
  }
}