неизвестный формат конфигурации: hocon (поддерживаемые форматы: [json, raw, properties] - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь использовать формат 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]

Я также проверил io.vertx.config.spi.ConfigProcessor в файле jar.И я не нахожу ожидаемого io.vertx.config.hocon.HoconProcessor.

Я пропустил какую-то конфигурацию сборки в файле POM?Есть ли что-то важное, что должно быть включено в файл POM для решения этой проблемы.

1 Ответ

0 голосов
/ 31 мая 2018

Форматы vertx-config настраиваются с использованием файла SPI (файл META-INF/services/io.vertx.config.spi.ConfigProcessor).Можете ли вы проверить содержимое этого файла в вашей последней банке?Для работы он должен содержать строку 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)

...