迁移到 Quarkus 2.8.0 后关于配置 属性 的警告

Warning about config property after migrated to Quarkus 2.8.0

我已将扩展程序从 quarkus 2.7.5 迁移到 quarkus 2.8.0

迁移后,我 运行 mvn clean install 并且控制台向我显示关于所有(可能 100 个)配置属性的奇怪警告(其中一些是我定义的,其他不像 java.specification.version):

[WARNING] [io.quarkus.config] Unrecognized configuration key "my.property" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo

我认为我的集成测试模块导致了这个问题。 这是我在 运行 时间文件夹中的 class:

import java.util.Optional;

import io.quarkus.runtime.annotations.ConfigItem;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;

@ConfigRoot(phase = ConfigPhase.RUN_TIME, prefix="", name = "myApp")
public class MyAppConfig {
   
    @ConfigItem(defaultValue = "defaultValue")
    String firstProperty;

    @ConfigItem(defaultValue = "")
    Optional<String> secondProperty;

    @ConfigItem(defaultValue = "defaultValue")
    String thirdProperty;

    // Getters ...

    
}

这是我的测试:

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.junit.jupiter.api.Test;
import io.quarkus.test.junit.QuarkusTest;

@QuarkusTest
public class MyAppIntegrationTest {

    @ConfigProperty(name="myApp.first-property")
    String firstProperty;

    @ConfigProperty(name="myApp.second-property")
    String secondProperty;

    @ConfigProperty(name="myApp.third-property")
    String thirdProperty;

    @Test
    public void testConfig() {
        assertEquals("firstValue", firstProperty);
        assertEquals("secondValue", secondProperty);
        assertEquals("thirdValue", thirdProperty);
    }

   
}

有人可以帮我解决这个问题吗?例如,我需要一个 BuildItem 吗?

感谢您的帮助

在这些警告上花了几个小时后,我发现它们是由 ConfigRoot 注释的空前缀字段引起的。

将名称字段设置为 "" 并将前缀设置为 "myApp" 解决了问题