使用SBT将编译的Scala文件打包到罐子中

时间:2015-10-23 14:11:32

标签: scala compilation sbt packaging

我正在使用Play Framework,Scala和SBT。我需要将项目划分为模块,因为它太大了。由于我不熟悉SBT,我创建了一个虚拟项目来玩。我的dummyproject本身有一些控制器,一个带有一些实用程序的core模块和一个models模块,它使用core模块中的一些实用程序。

我的主要目标是避免编译模块,除非绝对必要(例如,它的代码已被更改。)。

我可以使用dependsOn使模块相互依赖但据我所知,它们依赖于其他模块的代码。

我想做的是以某种方式将每个模块的编译文件打包成jar文件,并使依赖关系使用jar文件而不是代码本身。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

  

我的主要目标是避免编译模块,除非绝对必要(例如,它的代码已经更改。)。

这就是SBT所做的。如果代码没有更改,则不会重新编译模块。即使代码发生了变化,它也许能够检测到这种变化不会影响依赖模块(例如,如果你只更改了私有成员)并且不会重新编译它们。如果您依赖jar文件,那将会损害增量编译并迫使SBT重新编译您的文件 more

如果您确实想要依赖JAR,一种方法是将项目拆分为多个独立项目而不是模块,并以添加任何其他库的方式添加依赖项。