使用Makefile管理scala项目

Mal*_*rba 2 scala makefile

首先,我知道如何编写基本/中级makefile.在我的c ++项目中,我使用的makefile会自动执行很多操作.对我来说最重要的是它使用通配符自动检测所有源文件(始终在同一文件夹中),使用它来预测所有目标文件的名称(和位置),并进行适当编译.

最近我一直试图用我的scala项目达到同样的效果,但我遇到了两个障碍.

  • 属于包的已复制类文件存储在子目录(如com/me/mypack/)中.这是一个问题,因为 Make需要找到这些文件来检查时间戳(我不知道如何自动执行此操作).
  • 某些源文件(例如定义的package object文件)会生成具有不同命名标准的类文件.再次,Make 需要知道这些类文件的位置,我不知道如何自动执行此操作.

这样做的结果是每次运行时都会重新编译"有问题"的源文件make(scala的编译时间很长).我想知道如何修复它,而不必手动写出预期的类文件的整个列表.

编辑 作为额外说明:我想避免将源文件放在子目录中.出于几个原因,我喜欢将它们全部保存在同一目录中.

dhg*_*dhg 10

你应该使用sbtMaven for Scala.这些是专门为Scala和Java工作的方式而设计的,它们将更容易设置和使用.它们还提供了比make更多的功能.

这些工具用于各种事物.编译是一个很大的问题,但它们对于依赖管理也很重要.另外,sbt(可能还有Maven?)执行"增量编译",因此只重新编译已更改的类,这样可以加快编译速度.

我个人使用sbt,但我知道喜欢Maven的人.