Parsing della riga di comando in Java con Airline 2

Parsing della riga di comando in Java con Airline 2

Continuiamo i nostri test sulle librerie per il parsing della riga di comando in Java.

Oggi vediamo Airline 2!

Si è rilevata abbasta semplice da usare; se avete Maven:

        <dependency>
            <groupId>com.github.rvesse</groupId>
            <artifactId>airline</artifactId>
            <version>2.3.0</version>
        </dependency>

Questo il codice Java di esempio:

import com.github.rvesse.airline.SingleCommand;
import com.github.rvesse.airline.annotations.Command;
import com.github.rvesse.airline.annotations.Option;

@Command(name = "test", description = "Facciamo qualche test")
public class Main {

    @Option(title = "nome", name = {"-n", "--nome"}, 
            description = "Immetti il tuo nome")
    private String nome;

    @Option(title = "verbose", name = {"-v", "--verbose"}, 
            description = "Modalità verbosa")
    private boolean verbose;

    public static void main(String[] args) {
        String[] arguments = {"-n", "Mattepuffo"};
//        String[] arguments = {"-n", "Mattepuffo", "-v"};
//        String[] arguments = {};

        SingleCommand parser = SingleCommand.singleCommand(Main.class);
        Main main = parser.parse(arguments);

        if (main.nome != null) {
            System.out.println("Il tuo nome è: " + main.nome);
            System.out.println("Modalità verbosa: " + main.verbose);
        } else {
            System.out.println("ERRORE: Nome obbligatorio (-n o --nome)");
        }
    }
}

Non mi sembra sia previsto un metodo per l'help, ma non ho letto tutta la documentazione.

Enjoy!