在sbt和Scala play框架之间共享源/库

Ale*_*son 4 scala sbt playframework

我在Scala中开发了两个相关的应用程序.一个是使用SBT构建的服务器端处理引擎,无头地执行一些数字运算(在cron作业上).另一个是用Scala编写并在play框架上运行的网站.

我希望能够在两者之间共享代码,但是因为每个代码(SBT和Play)都有自己关于目录结构和如何构建事物的想法,所以我很清楚我应该如何做到这一点.我不想复制和粘贴.scala文件 - 但我也不热衷于使用sym链接并让它们都使用相同的文件构建.

如果有可能,我会接受让Play脚本运行SBT来根据需要构建库.如果这是唯一的方法,那么我也可以使用SBT为Play构建jar,然后将它们复制到位.但我经常同时开发它们(它们是更大的应用程序的一部分),如果它们一起更新,它们将更加顺畅.这是否可能,或者是否还有另一种更简单的技术?

谢谢,亚历克斯

Per*_*ega 7

唯一简单的方法是使用SBT构建JAR并使Play使用它们.

关于如何复制,您有两个选择:

  • 您手动构建并将它们复制到Play中的libs文件夹(您可以编写脚本以使其不那么烦人)
  • 您为JAR(ala Nexus存储库)使用自定义存储库,并使用Play dependencies.yml指向该存储库并进行更新.有了这个你还需要play sync --deps经常运行并调整版本,所以我不确定它在dev期间是否有太大意义(尽管JAR完成后它更有意义)