我正在尝试让我的Dropwizard应用程序接受自定义命令行参数。文档似乎还不够完善,只有一半的内容解释了该怎么做。考虑到我是新手,我需要一个从代码到命令行用法的非常清晰的示例。
有人愿意分享一下吗?我已经查看了this问题,但它没有解释清楚,我无法让它工作。
请不要我已经尝试过的代码样本。相信我,我已经尝试了很多,但我不确定要发布什么,因为大多数代码都已经消失了。如果你知道如何做到这一点,应该不会花很长时间来回答。谢谢。
发布于 2015-12-08 01:43:30
我正在使用手册中所述的示例。如果您需要实现以下输出,可以使用提供的代码来实现。如果你需要更具体的东西,请告诉我。
Input: java -jar <your-jar> hello -u conor
Output: Hello conor我不确定您使用的是哪个版本的dropwizard。这个是0.9.1的
主类
public class MyApplication extends Application<MyConfiguration> {
public static void main(String[] args) throws Exception {
{
new MyApplication().run(args);
}
}
@Override
public void initialize(Bootstrap<DropwizardConfiguration> bootstrap) {
bootstrap.addCommand(new MyCommand());
}
@Override
public void run(ExampleConfiguration config,
Environment environment) {
}
}MyCommand.java
public class MyCommand extends Command {
public MyCommand() {
super("hello", "Prints a greeting");
}
@Override
public void configure(Subparser subparser) {
// Add a command line option
subparser.addArgument("-u", "--user")
.dest("user")
.type(String.class)
.required(true)
.help("The user of the program");
}
@Override
public void run(Bootstrap<?> bootstrap, Namespace namespace) throws Exception {
System.out.println("Hello " + namespace.getString("user"));
}
}参考:http://www.dropwizard.io/0.9.1/docs/manual/core.html#man-core-commands
发布于 2016-08-24 05:23:45
公共类TestCommand扩展了命令{
public TestCommand() {
super("commandName", "CommandDesc");
}
@Override
public void configure(Subparser subparser) {
subparser.addArgument("-ct", "--commandTest").dest("Dest").type(String.class).required(true)
.help("command test");
}
@Override
public void run(Bootstrap<?> bootstrap, Namespace namespace) throws Exception {
System.out.println("command to test -> " + namespace.getString("Dest"));
}}
运行代码:commandName -ct dwizard as args
输出:用于测试-> dwizard的命令
如果您已经编写了扩展" command“类或类似类的类,则下面的命令应该适用于命令{ commandName } {command arg}
https://stackoverflow.com/questions/34119690
复制相似问题