使用Makefile管理scala项目

时间:2012-05-24 05:56:59

标签: scala makefile

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

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

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

这样做的结果是“有问题的”源文件 我每次运行make时都会重新编译(scala很长时间会加剧这种情况 编译时间)。我想知道如何解决这个问题而不必 手动写出预期类文件的整个列表。

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

1 个答案:

答案 0 :(得分:9)

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

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

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