gpt4 book ai didi

java - elasticsearch 6 ESIntegTestCase "codebase property already set"

转载 作者:行者123 更新时间:2023-12-01 19:52:33 32 4
gpt4 key购买 nike

我正在尝试从 2.3.4 升级到 ES 6.2。

以前,我们通过使用 NodeBuilder 并运行本地 ES 节点来对代码进行集成测试。如果可能的话,我宁愿将其替换为 ESIntegTestCase 用法。

但是,当我尝试运行集成测试时,出现以下错误:


at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:164)
at org.elasticsearch.test.ESTestCase.<clinit>(ESTestCase.java:190)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:592)
Caused by: java.lang.IllegalStateException: codebase property already set: codebase.metrics-core -> file:/Users/me/.m2/repository/io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar, cannot set to file:/Users/me/.m2/repository/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0.jar
at org.elasticsearch.bootstrap.Security.readPolicy(Security.java:236)
at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:139)
... 4 more

这是什么意思,我该如何解决它?

我的测试类注释为:@RunWith(com.carrotsearch.randomizedtesting.RandomizedRunner.class)并延伸ESIntegTestCase如果这有帮助的话。

感谢您提供的任何帮助!

最佳答案

如果开发插件仍然需要嵌入式 ES,那么也许设置系统属性 -Dtests.gradle=false 可以解决该问题。

由于 BootstrapForTesting.java L175 包含:

if (System.getProperty("tests.gradle") == null) {
addClassCodebase(codebases, "plugin-classloader", "org.elasticsearch.plugins.ExtendedPluginsClassLoader");
addClassCodebase(codebases, "elasticsearch-secure-sm", "org.elasticsearch.secure_sm.SecureSM");
}

关于java - elasticsearch 6 ESIntegTestCase "codebase property already set",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833920/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com