【发布时间】:2014-11-17 11:35:18
【问题描述】:
在我们的项目中,我们对 compile 生成的 .class 文件进行了增强后处理。这个增强步骤实际上修改了生成的 .class 文件然后覆盖它。
enhance <<= enhance triggeredBy (compile in Compile)
问题在于 sbt 有一种称为增量重新编译的机制。它监视生成的 .class 文件。每次增强器覆盖生成的 .class 文件时,sbt 都会识别这些修改并在下一个编译命令中重新编译相关源。
对我们来说,重新编译是一项非常耗时的工作。我们想阻止 sbt 重新编译修改后的 .class 文件。这可能意味着让 sbt 只监视源更改,而不是输出更改。
我对此进行了一些搜索。但是我发现了一些关于这个的事情。现在我知道一个名为 Analysis 的特征可能负责从源文件到输出 .class 文件的映射。所以我向你们寻求帮助。
Ps:我们可以通过将enhanced的输出放到另一个文件夹来解决这个问题,但不是首选。
【问题讨论】:
-
使用已编译的类创建单独的项目,并将其作为依赖项(库)添加到您的游戏项目中。
-
@AndrzejJozwik 感谢您的评论。您建议的方式不是首选,因为它距离我们的目标还有很长的路要走。由于我们的项目是一个非常大的项目,增加的复杂性可能会导致更多的问题。我们想要一种直接解决问题的方法。
标签: scala sbt incremental-compiler