Как я могу включить дополнительный ресурс в образ, созданный с помощью Quarkus?

У меня есть проект, содержащий файл extra-config.properties в src/main/resources, на который я ссылаюсь в своем коде, используя:

getClass().getClassLoader().getResourceAsStream("extra-config.properties"))

Это отлично работает в режиме JVM, но когда я создаю собственный образ, файл недоступен, потому что он не включен в двоичный файл.

Как я могу указать Quarkus включить его?


person geoand    schedule 07.06.2019    source источник


Ответы (1)


При создании собственного двоичного файла GraalVM по умолчанию не включает ресурсы пути к классам в изображение. Вместо этого вам нужно указать -H:IncludeResources, как указано здесь.

В Quarkus это можно сделать, настроив плагин quarkus-maven-plugin для добавления свойства additionalBuildArgs. Конфигурация будет выглядеть примерно так:

                <plugin>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-maven-plugin</artifactId>
                    <version>${quarkus.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>native-image</goal>
                            </goals>
                            <configuration>
                                <additionalBuildArgs>-H:IncludeResources=extra-properties.json</additionalBuildArgs>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
person geoand    schedule 07.06.2019