public static void main(String... args) {
    	printVersion();
    	
    	@SuppressWarnings("unchecked")
        CliBuilder<Runnable> builder = Cli.<Runnable>builder("ache")
            .withDescription("ACHE Focused Crawler")
            .withDefaultCommand(AcheHelp.class)
            .withCommands(
                AcheHelp.class,
                StartCrawl.class,
                StartRestServer.class,
                BuildModel.class,
                AddSeeds.class,
                SeedFinder.class,
                RunCliTool.class,
                TargetClassifierTester.class
            );

        Cli<Runnable> acheParser = builder.build();
        try {
            acheParser.parse(args).run();
        }
        catch(ParseException e) {
            System.out.println("Unable to parse the input. "+e.getMessage()+"\n");
            Help.help(acheParser.getMetadata(), Arrays.asList());
            System.exit(1);
        } 
        catch (Exception e) {
            System.err.println("Failed to execute command.");
            e.printStackTrace(System.err);
        }
    }
<p>
Description: This is the main entry point for working with the components of ACHE
</p>
ache/src/main/java/achecrawler/Main.java