Java [Gradle][Play]compilePlayBinaryScala在哪里定义?
我对gradle和Play比较陌生 我正在做一个使用gradle作为构建系统的play项目。我试图使用构建缓存来提高性能。从构建扫描中,我观察到“compilePlayBinaryScala”不可缓存,并且大多数其他任务都依赖于“compilePlayBinaryScala”。为“compilePlayBinaryScala”启用缓存将真正扩大构建规模 Gradle官方文档列出任务() 我找不到“compilePlayBinaryScala”或任何其他Java [Gradle][Play]compilePlayBinaryScala在哪里定义?,java,gradle,playframework,Java,Gradle,Playframework,我对gradle和Play比较陌生 我正在做一个使用gradle作为构建系统的play项目。我试图使用构建缓存来提高性能。从构建扫描中,我观察到“compilePlayBinaryScala”不可缓存,并且大多数其他任务都依赖于“compilePlayBinaryScala”。为“compilePlayBinaryScala”启用缓存将真正扩大构建规模 Gradle官方文档列出任务() 我找不到“compilePlayBinaryScala”或任何其他*PlayBinaryScala任务的明确任
*PlayBinaryScala
任务的明确任务定义。这些任务在哪里定义
根据我的研究,我可以看到这个文件,其中可以创建任务。但是,我不确定
因为我是新手,详细解释为什么这样做会非常有帮助。任务是在该文件中创建的,但不是在您链接的方法中创建的。在方法中为每个二进制文件创建任务,如。
@Mutate
,@BinaryTasks
,`@componentbinary是Gradle中称为基于规则的模型(也称为软件模型)的一部分。有关用法的说明,请参见。Gradle团队对这种模式进行了几年的试验,但最终决定不使用,并且没有正式反对(参见博客文章)
compilePlayBinaryScala
的类型为。这在文档中有说明,也可以通过运行/gradlew model
或添加类似于记录该类型的任务操作来确定。compilePlayBinaryScala的任务名
是从插件的几个不同部分计算出来的。组件名称是“play”
,因此二进制文件和任务是基于此和目标平台生成的。如果插件支持多个平台(在编写本文时不支持),任务命名约定将更加明显.另一个基于组件名称生成任务的插件示例是Gradle的
关于规则模型是如何构造的,不值得深入讨论,但是高级是方法的第一个参数,是主题,可以更改,而其余参数是输入,是不可变的。在上面链接的方法中,您会注意到第一个参数的类型是ModelMap
可以变异的Task
对象的一部分。流看起来像这样(我可能缺少一些东西):
- 其他一些配置规则
ScalaLanguagePlugin
。/gradlew模型将为你提供一些东西的来源报告,可能会有帮助,但也可能不是因为这些东西是在该模型和正常Gradle配置之间进行管理的模型