我正在开发一个内部使用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和项目结构来实现你所说的吗? –