Пример #1
0
  private void initialize(CliRequest cliRequest) {
    if (cliRequest.stdout == null) {
      cliRequest.stdout = System.out;
    }
    if (cliRequest.stderr == null) {
      cliRequest.stderr = System.err;
    }

    if (logger == null) {
      logger = new PrintStreamLogger(cliRequest.stdout);
    } else {
      logger.setStream(cliRequest.stdout);
    }

    if (cliRequest.workingDirectory == null) {
      cliRequest.workingDirectory = System.getProperty("user.dir");
    }

    //
    // Make sure the Maven home directory is an absolute path to save us from confusion with say
    // drive-relative
    // Windows paths.
    //
    String mavenHome = System.getProperty("maven.home");

    if (mavenHome != null) {
      System.setProperty("maven.home", new File(mavenHome).getAbsolutePath());
    }
  }
Пример #2
0
  //
  // Logging needs to be handled in a standard way at the container level.
  //
  private void logging(CliRequest cliRequest) {
    cliRequest.debug = cliRequest.commandLine.hasOption(CLIManager.DEBUG);
    cliRequest.quiet = !cliRequest.debug && cliRequest.commandLine.hasOption(CLIManager.QUIET);
    cliRequest.showErrors = cliRequest.debug || cliRequest.commandLine.hasOption(CLIManager.ERRORS);

    if (cliRequest.debug) {
      cliRequest.request.setLoggingLevel(MavenExecutionRequest.LOGGING_LEVEL_DEBUG);
    } else if (cliRequest.quiet) {
      // TODO: we need to do some more work here. Some plugins use sys out or log errors at info
      // level.
      // Ideally, we could use Warn across the board
      cliRequest.request.setLoggingLevel(MavenExecutionRequest.LOGGING_LEVEL_ERROR);
      // TODO:Additionally, we can't change the mojo level because the component key includes the
      // version and
      // it isn't known ahead of time. This seems worth changing.
    } else {
      cliRequest.request.setLoggingLevel(MavenExecutionRequest.LOGGING_LEVEL_INFO);
    }

    logger.setThreshold(cliRequest.request.getLoggingLevel());

    if (cliRequest.commandLine.hasOption(CLIManager.LOG_FILE)) {
      File logFile = new File(cliRequest.commandLine.getOptionValue(CLIManager.LOG_FILE));
      logFile = resolveFile(logFile, cliRequest.workingDirectory);

      try {
        cliRequest.fileStream = new PrintStream(logFile);
        logger.setStream(cliRequest.fileStream);
      } catch (FileNotFoundException e) {
        cliRequest.stderr.println(e);
        logger.setStream(cliRequest.stdout);
      }
    } else {
      logger.setStream(cliRequest.stdout);
    }

    cliRequest.request.setExecutionListener(new ExecutionEventLogger(logger));
  }