首页 > 解决方案 > Dropwizard - 运行独立命令而不添加捆绑包

问题描述

我有一个使用 swagger-jaxrs2 生成 openapi 规范的 Dropwizard 应用程序。例如,我想让一个命令简单地运行它java -jar app.jar generate build/spec.json,但是因为我配置了 Hibernate,所以它需要我指定配置文件,即使它与命令和 NPE 完全无关。

尝试指定配置会导致此错误:

unrecognized arguments: 'src/test/resources/configs/configuration.test.yml'

因为我没有明确添加配置的参数。

有没有办法解决这个问题?我必须每次都指定配置?真的很烦人:D


编辑:最终只是以main这种方式劫持和输出它,因为在这种情况下我只需要访问类路径。创意由Dropwizard 命令行输入提供

标签: dropwizard

解决方案


您可以定义一个特殊的命令扩展io.dropwizard.cli.Command,它不需要将配置作为参数传递,因为它不是io.dropwizard.cli.ConfiguredCommand. 只需在您的覆盖中注册io.dropwizard.Application#initialize并调用bootstrap.addCommand(new YourSpecialCommand());

它可以让你打电话:
java -jar app.jar key-of-your-special-command <any args you define in your command>


推荐阅读