application/src/main/java/com/buschmais/jqassistant/commandline/Main.java
private void interpretCommandLine(CommandLine commandLine, Options options, TaskFactory taskFactory) throws CliExecutionException {
        if(commandLine.hasOption(OPTION_HELP)) {
            printUsage(options, null);
            System.exit(1);
        }

        List<String> taskNames = commandLine.getArgList();
        if (taskNames.isEmpty()) {
            printUsage(options, "A task must be specified, i.e. one  of " + gatherTaskNames(taskFactory));
            System.exit(1);
        }
        List<Task> tasks = new ArrayList<>();
        for (String taskName : taskNames) {
            Task task = taskFactory.fromName(taskName);
            if (task == null) {
                printUsage(options, "Unknown task " + taskName);
            }
            tasks.add(task);
        }
        Map<String, Object> properties = readProperties(commandLine);
        PluginRepository pluginRepository = getPluginRepository();
        try {
            executeTasks(tasks, options, commandLine, pluginRepository, properties);
        } catch (PluginRepositoryException e) {
            throw new CliExecutionException("Unexpected plugin repository problem while executing tasks.", e);
        }
    }
private void interpretCommandLine(CommandLine commandLine, Options options, TaskFactory taskFactory) throws CliExecutionException {
        if(commandLine.hasOption(OPTION_HELP)) {
            printUsage(options, null);
            System.exit(1);
        }

        List<String> taskNames = commandLine.getArgList();
        if (taskNames.isEmpty()) {
            printUsage(options, "A task must be specified, i.e. one  of " + gatherTaskNames(taskFactory));
            System.exit(1);
        }
        List<Task> tasks = new ArrayList<>();
        for (String taskName : taskNames) {
            Task task = taskFactory.fromName(taskName);
            if (task == null) {
                printUsage(options, "Unknown task " + taskName);
            }
            tasks.add(task);
        }
        Map<String, Object> properties = readProperties(commandLine);
        PluginRepository pluginRepository = getPluginRepository();
        try {
            executeTasks(tasks, options, commandLine, pluginRepository, properties);
        } catch (PluginRepositoryException e) {
            throw new CliExecutionException("Unexpected plugin repository problem while executing tasks.", e);
        }
    }
private void interpretCommandLine ( CommandLine commandLine , Options options , TaskFactory taskFactory ) throws CliExecutionException { if ( commandLine . hasOption ( OPTION_HELP ) ) { printUsage ( options , null ) ; System . exit ( 1 ) ; } List < String > taskNames = commandLine . getArgList ( ) ; if ( taskNames . isEmpty ( ) ) { printUsage ( options , "A task must be specified, i.e. one  of " + gatherTaskNames ( taskFactory ) ) ; System . exit ( 1 ) ; } List < Task > tasks = new ArrayList <> ( ) ; for ( String taskName : taskNames ) { Task task = taskFactory . fromName ( taskName ) ; if ( task == null ) { printUsage ( options , "Unknown task " + taskName ) ; } tasks . add ( task ) ; } Map < String , Object > properties = readProperties ( commandLine ) ; PluginRepository pluginRepository = getPluginRepository ( ) ; try { executeTasks ( tasks , options , commandLine , pluginRepository , properties ) ; } catch ( PluginRepositoryException e ) { throw new CliExecutionException ( "Unexpected plugin repository problem while executing tasks." , e ) ; } }
Parse the command line and execute the requested task.

@param commandLine
The command line.
@param options
The known options.
@throws CliExecutionException
If an error occurs.
Parse the command line and execute the requested task .