未知配置格式:hocon(支持的格式为:[json,raw,properties]

时间:2018-05-30 17:26:09

标签: java vert.x typesafe-config

我正在尝试使用Hocon格式在Vertx中进行配置。我还为它添加了maven依赖。

<dependency>
            <groupId>com.typesafe</groupId>
            <artifactId>config</artifactId>
            <version>1.3.3</version>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-config-hocon</artifactId>
            <version>3.5.1</version>
        </dependency>

代码在eclipse中编译得很好。

Vertx vertx = Vertx.vertx();

DeploymentOptions options = new DeploymentOptions();

ConfigStoreOptions store = new ConfigStoreOptions().setType("file").setFormat("hocon").setConfig(new JsonObject().put("path", System.getProperty("configPath")));

ConfigRetriever retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(store));

但是,当我运行二进制文件并将hocon配置文件作为命令行参数传递时,我收到以下未知配置异常:

java.lang.IllegalArgumentException: unknown configuration format: hocon (supported formats are: [json, raw, properties]

我还检查了jar文件中的io.vertx.config.spi.ConfigProcessor。而且我找不到预期的io.vertx.config.hocon.HoconProcessor

我是否在POM文件中遗漏了一些构建配置?是否有任何重要的事情要包含在POM文件中以解决此问题。

1 个答案:

答案 0 :(得分:3)

使用SPI文件(META-INF/services/io.vertx.config.spi.ConfigProcessor文件)配置vertx-config格式。你能在最后一个jar中查看这个文件的内容吗?要使用,它必须包含io.vertx.config.hocon.HoconProcessor行。由于您还依赖于vertx-config(也包含此文件),您需要配置Maven Shader插件以将不同的文件合并为一个。有关详细信息,请查看https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer。 Vert.x Maven插件会自动执行此操作(https://github.com/reactiverse/vertx-maven-plugin