迁移到 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"
解决了问题
我已将扩展程序从 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"
解决了问题