Play enhancer docs说可以为特定的类/包启用它。可以通过以下方式完成(我在build.sbt中假设):
sources in (Compile, playEnhancerGenerateAccessors) := {
((javaSource in Compile).value / "models" ** "*.java").get
}
我不习惯sbt / scala,我想知道如何在这种过滤中提供多个软件包。如果我可以选择带有指定注释的类,那就更好了。可能吗?
编辑: 因此,出于提高Play Framework项目的编译速度的意图而提出了这个问题。事实证明,即使仅增强特定的软件包,编译速度也基本相同。奇怪的是,完全关闭PlayEnchancer可以使我的项目的编译时间几乎减少一半(30秒)。
答案 0 :(得分:1)
范围为sources
的设置存储该Play Enhancer任务的一组文件,此示例仅过滤具有给定模式的文件:
(javaSource in Compile).value
应该是您项目中的src/main/java/
目录/ "models"
表示您只在src/main/java/models/
中浏览** "*.java"
在所有子目录中搜索扩展名为.java
的任何文件.get
仅评估与模式匹配的文件列表如果您想组合多个模式,可以使用+++
和---
运算符来实现:
sources in (Compile, playEnhancerGenerateAccessors) := {
val green = base / "green" ** "*.java"
val blue = base / "blue" ** "*.java"
val red = base / ** "*red*"
(green +++ blue --- red).get
}
在sbt中,这些模式称为路径查找器,您可以在Paths的sbt文档中了解如何使用它们。因为这只是按文件的路径/名称过滤文件,所以我认为您不能以这种方式选择带有指定注释的类。