Java命令列程式構建工具airlift使用之分組(group)
阿新 • • 發佈:2019-02-16
閒話少說,直接上程式碼:
package com.ilucky.druid.airlift.test2;
import java.util.Arrays;
import io.airlift.airline.Cli;
import io.airlift.airline.Cli.CliBuilder;
import io.airlift.airline.Help;
import io.airlift.airline.ParseArgumentsUnexpectedException;
/**
* v1.0:20161115
* 組的概念.
* 右擊Run As - Run Configurations - Arguments - Program arguments
* 輸入: g1 G1MyCommand test, g1 G1MyCommand2 test,
* 或g2 G2MyCommand test, 執行, 檢視Console視窗.
* @author Ilucky
*/
public class MainTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
System.out.println("===> " + Arrays.asList(args));
CliBuilder<Runnable> builder = Cli.<Runnable>builder("MyCommand:Builder");
builder.withGroup("g1")
.withDescription ("g1:Description")
.withDefaultCommand(Help.class)
.withCommands(Help.class, G1MyCommand.class, G1MyCommand2.class);
builder.withGroup("g2")
.withDescription("g2:Description")
.withDefaultCommand(Help.class)
.withCommands(Help.class , G2MyCommand.class);
Cli<Runnable> cliParser = builder.build();
try {
cliParser.parse(args).run();
} catch (ParseArgumentsUnexpectedException e) {
System.out.println("Invalid command:"+e.toString());
}
}
}
/**
輸入: g1 G1MyCommand test, 結果:
===> [g1, G1MyCommand, test]
G1MyCommand=test
輸入: g1 G1MyCommand2 test, 結果:
===> [g1, G1MyCommand2, test]
G1MyCommand2=test
輸入: g2 G2MyCommand test, 結果:
===> [g2, G2MyCommand, test]
G2MyCommand=test
*/
package com.ilucky.druid.airlift.test2;
import io.airlift.airline.Arguments;
import io.airlift.airline.Command;
@Command(name="G1MyCommand",description="This is G1MyCommand")
public class G1MyCommand implements Runnable {
@Arguments
private String command;
@Override
public void run() {
System.out.println("G1MyCommand=" + command);
}
}
package com.ilucky.druid.airlift.test2;
import io.airlift.airline.Arguments;
import io.airlift.airline.Command;
@Command(name="G1MyCommand2",description="This is G1MyCommand2")
public class G1MyCommand2 implements Runnable {
@Arguments
private String command;
@Override
public void run() {
System.out.println("G1MyCommand2=" + command);
}
}
package com.ilucky.druid.airlift.test2;
import io.airlift.airline.Arguments;
import io.airlift.airline.Command;
@Command(name="G2MyCommand",description="This is G2MyCommand")
public class G2MyCommand implements Runnable {
@Arguments
private String command;
@Override
public void run() {
System.out.println("G2MyCommand=" + command);
}
}