在sbt和Scala Play框架之间共享源代码/库

4
我正在开发两个与Scala相关的应用程序。一个是使用SBT构建的服务器端处理引擎,以无头方式运行进行一些数据计算(在cron作业中)。另一个是使用Scala编写并在Play框架上运行的网站。
我有一些代码希望能在两个应用程序之间共享,但由于每个应用程序(SBT和Play)都有自己的目录结构和构建方式,因此我不清楚该如何做。我不想复制和粘贴.scala文件,但我也不想使用符号链接并让它们从同一文件构建。
如果可能的话,我希望Play脚本能够运行SBT以根据需要构建库。如果这是唯一的方法,那么我也可以使用SBT为Play构建jar文件,然后将它们复制到指定位置。但我经常同时开发两者(它们是更大应用程序的部分),如果它们可以同时更新,那么一切都会更加顺利。这是否可能?或者是否还有其他更简单的技术我没有想到?
谢谢,Alex
1个回答

7
唯一简单的方法是使用SBT构建JAR文件并使Play使用它们。
在复制方面,您有两个选择:
- 您可以手动构建并将它们复制到Play的libs文件夹中(您可以编写脚本以使其更加便捷)。 - 您可以使用自定义存储库来存储您的JAR文件(如Nexus存储库),并使用Play的dependencies.yml指向该存储库并更新。但这种方式需要经常运行play sync --deps命令,并且需要对版本进行调整,因此我不确定在开发过程中是否值得采用(但一旦JAR文件完成,这种方式会更加合理)。

感谢您的迅速回复。我听说Play Scala正在考虑转移到SBT。这可能会使任务更加集成化?但与此同时,我很高兴知道自己并不是完全愚蠢的。 - Alex Wilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接