2016-08-21 37 views
0

我已用val以下包對象在它纈氨酸對象unaccessable在其他類

package au.com.someproject.protocol 

package object helpers { 
    val etcdRoot = "someproject.com.au" 
} 

聲明此包對象被聲明作爲API的一部分,當我導入API到另一個項目我嘗試用下面的錯誤

[error] /home/user/git/company/project/project-agent/src/main/scala/au/com/someproject/project_agent/cluster/StatusMonitor.scala:52: not found: value etcdRoot 
[error]  etcdClient.setKey(s"$etcdRoot/kumo/peers/${systemCluster.selfAddress.host.get}", systemCluster.selfAddress.port.get.toString, new Some(40.seconds)) 

我輸入變量像這樣,我怎麼會不同的是它應該做的事

訪問我遇到的變量

但還沒有我得到的錯誤,是不是我做錯了與申報或進口?

+0

我敢肯定你的進口是有效的。你可以檢查依賴項(檢查JAR文件)嗎?在歸檔上 – slouc

回答

2

有通常與封裝對象捕獲,它們必須手動放在包文件夾內,這意味着我希望你的目錄結構,看起來像這樣的進口將工作之前。

src/main/scala/au/com/someproject/protocol/helpers/helpers.scala 

而且helpers/內,定義您的package object。有時候,你被誘惑把它像下面:

src/main/scala/au/com/someproject/protocol/helpers.scala 

以上的helpers包實際上並沒有定義package object,您需要按照特定的目錄結構和手動定義package你定義package object前在裏面。

+0

運行'的Java tf'顯示,包對象類是在正確的包目錄'AU/COM/someproject /協議/助理/ package.class' –

+0

@LiamHaworth,或許是有機會,你可以仔細檢查源代碼雖然? – flavian

+1

這看起來很奇怪,API包由從'au.com.someproject.protocol'下生成的Protobuf消息構建的類組成。看起來,當我在'protocol'下有'helpers'和'exceptions'包時,我遇到了導入問題。在'au.com.someproject'根目錄下移動包對象現在似乎可以工作o_O –