Search in sources :

Example 1 with Slf4jStdoutLogger

use of org.apache.maven.cli.logging.Slf4jStdoutLogger in project kie-wb-common by kiegroup.

the class AFMavenCli method cli.

protected void cli(AFCliRequest cliRequest) throws Exception {
    // 
    // Parsing errors can happen during the processing of the arguments and we prefer not having to check if
    // the logger is null and construct this so we can use an SLF4J logger everywhere.
    // 
    slf4jLogger = new Slf4jStdoutLogger();
    CLIManager cliManager = new CLIManager();
    List<String> args = new ArrayList<String>();
    try {
        Path configFile = Paths.get(cliRequest.getMultiModuleProjectDirectory(), ".mvn/maven.config");
        if (java.nio.file.Files.isRegularFile(configFile)) {
            for (String arg : Files.toString(configFile.toFile(), Charsets.UTF_8).split("\\s+")) {
                args.add(arg);
            }
            CommandLine config = cliManager.parse(args.toArray(new String[args.size()]));
            List<?> unrecongized = config.getArgList();
            if (!unrecongized.isEmpty()) {
                throw new ParseException("Unrecognized maven.config entries: " + unrecongized);
            }
        }
    } catch (ParseException e) {
        System.err.println("Unable to parse maven.config: " + e.getMessage());
        cliManager.displayHelp(output);
        throw e;
    }
    try {
        args.addAll(0, Arrays.asList(cliRequest.getArgs()));
        cliRequest.setCommandLine(cliManager.parse(args.toArray(new String[args.size()])));
    } catch (ParseException e) {
        System.err.println("Unable to parse command line options: " + e.getMessage());
        cliManager.displayHelp(output);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PrintStream ps = new PrintStream(baos);
        cliManager.displayHelp(ps);
        throw e;
    }
    if (cliRequest.getCommandLine().hasOption(CLIManager.HELP)) {
        cliManager.displayHelp(output);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PrintStream ps = new PrintStream(baos);
        cliManager.displayHelp(ps);
        throw new ExitException(0);
    }
    if (cliRequest.getCommandLine().hasOption(CLIManager.VERSION)) {
        System.out.println(AFCLIReportingUtils.showVersion());
        throw new ExitException(0);
    }
}
Also used : Path(java.nio.file.Path) PrintStream(java.io.PrintStream) CommandLine(org.apache.commons.cli.CommandLine) ArrayList(java.util.ArrayList) Slf4jStdoutLogger(org.apache.maven.cli.logging.Slf4jStdoutLogger) ParseException(org.apache.commons.cli.ParseException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) CLIManager(org.apache.maven.cli.CLIManager)

Aggregations

ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 PrintStream (java.io.PrintStream)1 Path (java.nio.file.Path)1 ArrayList (java.util.ArrayList)1 CommandLine (org.apache.commons.cli.CommandLine)1 ParseException (org.apache.commons.cli.ParseException)1 CLIManager (org.apache.maven.cli.CLIManager)1 Slf4jStdoutLogger (org.apache.maven.cli.logging.Slf4jStdoutLogger)1