gpt4 book ai didi

java - 对象测试不是 org.elasticsearch 包的成员

转载 作者:行者123 更新时间:2023-12-02 12:15:03 25 4
gpt4 key购买 nike

我正在尝试使用包org.elasticsearch.test.ESTestCase中的类ESTestCase我正在关注此链接 -> https://www.elastic.co/guide/en/elasticsearch/reference/current/using-elasticsearch-test-classes.html我正在使用 sbt 项目,这里的库依赖项是 build.sbt 文件

"org.elasticsearch" % "elasticsearch" % "5.6.0",
"org.elasticsearch.client" % "transport" % "5.6.0",
"org.apache.lucene" % "lucene-expressions" % "6.6.0",
"org.apache.logging.log4j" % "log4j-core" % "2.9.0",
"org.apache.lucene" % "lucene-test-framework" % "6.6.0" % "test",
"org.elasticsearch.test" % "framework" % "5.6.0" % "test",

当我尝试导入这两行时

import org.elasticsearch.test.ESTestCase
import org.elasticsearch.transport.MockTransportClient

eclipse 没有显示任何编译时错误,但在 sbt-compile 上出现以下错误

[

error] /myproject/app/CampaignController.scala:44: object test is not a member of package org.elasticsearch
[error] import org.elasticsearch.test.ESTestCase
[error] ^
[error] /myproject/app/CampaignController.scala:45: object MockTransportClient is not a member of package org.elasticsearch.transport
[error] import org.elasticsearch.transport.MockTransportClient
[error] ^

我使用的是 ElasticSearch 5.6.0,请帮助解决导致问题的原因

最佳答案

问题出在依赖项中的 % "test" 中。如果依赖项以 % "test" 结尾,它将仅为您的测试进行编译。

因此,通常假设您将在测试模块中使用 org.elasticsearch.test.ESTestCase 和其他测试内容(src/test/scala 或类似的东西)。

可能您正在将 Elasticsearch 测试依赖项导入应用程序(src/main...),这就是您收到错误的原因。

如果将它们导入到测试模块(src/test/scala)中,它将起作用。

但是如果您确实需要将其导入到您的应用程序代码中,那么只需从依赖项中删除 % "test"

...
"org.apache.lucene" % "lucene-test-framework" % "6.6.0",
"org.elasticsearch.test" % "framework" % "5.6.0"
...

这是一个 sbt 文档,对其进行了解释: http://www.scala-sbt.org/0.13/docs/Library-Dependencies.html (搜索“每个配置依赖项”)

关于java - 对象测试不是 org.elasticsearch 包的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46253304/

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