![](/img/trans.png)
[英]Build ElasticSearch Query using org.elasticsearch:elasticsearch java library
[英]object test is not a member of package org.elasticsearch
我正在嘗試使用ESTestCase
包中的org.elasticsearch.test.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"
結尾,它將僅針對您的測試進行編譯。
因此,通常假定您將在測試模塊(src / test / scala之類)中使用org.elasticsearch.test.ESTestCase
和其他測試內容。
可能是您將彈性搜索測試依賴項導入到應用程序(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 (搜索“基於配置的依賴性”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.