簡體   English   中英

對象測試不是org.elasticsearch軟件包的成員

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM