private void configureRequest(final MavenExecutionRequest request) throws Exception { assert request != null; assert config != null; File dir = new File(config.getBaseDirectory(), "").getAbsoluteFile(); request.setBaseDirectory(dir); // HACK: Some bits need user.dir to be set, or use un-rooted File's :-( System.setProperty("user.dir", dir.getAbsolutePath()); // Configure profiles for (String profile : config.getProfiles()) { profile = profile.trim(); if (profile.startsWith("-") || profile.startsWith("!")) { request.addInactiveProfile(profile.substring(1)); } else if (profile.startsWith("+")) { request.addActiveProfile(profile.substring(1)); } else { request.addActiveProfile(profile); } } // Configure user toolchains File userToolchainsFile = request.getUserToolchainsFile(); if (userToolchainsFile != null) { userToolchainsFile = resolveFile(userToolchainsFile, config.getBaseDirectory()); } else { userToolchainsFile = DEFAULT_USER_TOOLCHAINS_FILE; } request.setUserToolchainsFile(userToolchainsFile); // Configure the pom File alternatePomFile = config.getPomFile(); if (alternatePomFile != null) { request.setPom(resolveFile(alternatePomFile, config.getBaseDirectory())); } else if (request.getPom() != null && !request.getPom().isAbsolute()) { request.setPom(request.getPom().getAbsoluteFile()); } if ((request.getPom() != null) && (request.getPom().getParentFile() != null)) { request.setBaseDirectory(request.getPom().getParentFile()); } else if (request.getPom() == null && request.getBaseDirectory() != null) { ModelProcessor modelProcessor = container.lookup(ModelProcessor.class); try { File pom = modelProcessor.locatePom(new File(request.getBaseDirectory())); request.setPom(pom); } finally { container.release(modelProcessor); } } else if (request.getBaseDirectory() == null) { request.setBaseDirectory(config.getBaseDirectory()); } // Configure the local repo path String localRepoPath = request.getUserProperties().getProperty(LOCAL_REPO); if (localRepoPath == null) { localRepoPath = request.getSystemProperties().getProperty(LOCAL_REPO); } if (localRepoPath != null) { request.setLocalRepositoryPath(localRepoPath); } // Setup the xfr listener ArtifactTransferListener transferListener; if (request.isInteractiveMode()) { transferListener = new ConsoleMavenTransferListener(config.getStreams().out); } else { transferListener = new BatchModeMavenTransferListener(config.getStreams().out); } transferListener.setShowChecksumEvents(false); request.setTransferListener(transferListener); // Configure request logging request.setLoggingLevel(logger.getThreshold()); request.setExecutionListener(new ExecutionEventLogger(terminal.get(), logger)); }