我正在開發一個內部使用Akka actors實現的反應性庫。我們稱這個庫爲server
。該庫公開一種類型的Actor作爲其API。該Actor接受定義其公共接口的不同類型的消息。假設這些消息被定義爲以下內容。在Akka的兩個項目中共享消息類型
sealed trait Request
case class Creation(name: String) extends Request
sealed trait Response
case class CreationAck(name: String) extends Response
現在,我還必須實現一個使用上述庫的程序。我們稱這個程序爲client
。此程序還將使用Akka Actor與圖書館集成,例如使用詢問模式(應用程序的其餘部分不是使用參與者開發的)。
implicit val timeout = Timeout(5 seconds)
def create(): Future[CreationAck] = (mainActor ? Creation).mapTo[CreationAck]
// And so on...
顯然,讓編譯上述代碼,類型Creation
和CreationAck
必須提供既server
和client
。
我的問題是:在這兩個項目中哪個是最好的方法來共享像Creation
和CreationAck
這樣的公共消息?構建我正在使用的每個程序sbt。
好的,你能舉個例子來說明如何配置sbt和項目結構來實現你所說的嗎? –