java - 渐变 :compilePlayBinaryPlayRoutes is not generating all imports

标签 java scala gradle playframework sbt

我正在将 Play 应用程序从 SBT 切换到 gradle,并且没有生成路由和反向路由 scala 文件

import _root_.play.libs.F

这是造成

build/src/play/binary/routesScalaSources/controllers/ReverseRoutes.scala:260: not found: value F
def validate(accountId:F.Option[java.lang.Long]): Call = {

我使用的是 gradle 3.5,play:'2.4.8',scala:'2.11' 和 java:'1.8'。有谁知道是否存在兼容性问题或其他一些已知问题会阻止将导入添加到生成的 scala 文件中?

** 编辑 **

我发现这个类 RoutesCompile 有一个方法 additionalImports 但我找不到如何在 build.gradle 文件中使用它。 (我是 gradle 的 super 新手,更像是一个行家)

** 编辑 2 **

基于 RoutesCompile 中的 Javadoc类似乎我应该像这样将它添加到模型中:

model {
  components {
    play {
        platform play: '2.4.8', scala: '2.11', java: '1.8'
        injectedRoutesGenerator = true
        additionalImports = ['play.libs.F']
        sources {
            twirlTemplates {
                defaultImports = TwirlImports.JAVA
                source.srcDir "assets/views"
                source.exclude "assets/stylesheets"
            }
        }
     }
   }
}

但是我得到以下错误:

> Exception thrown while executing model rule: play { ... } @ build.gradle line 147, column 9
> No such property: additionalImports for class: org.gradle.play.PlayApplicationSpec

最佳答案

我终于找到了问题的答案。我需要获取任务并以这种方式添加额外的导入。

model {
components {
    play {
        platform play: '2.4.8', scala: '2.11', java: '1.8'
        injectedRoutesGenerator = true
        tasks.withType(RoutesCompile) {
            additionalImports = ['play.libs.F']
        }

        sources {
            twirlTemplates {
                defaultImports = TwirlImports.JAVA
                source.srcDir "assets/views"
                source.exclude "assets/stylesheets"
            }
        }
     }
  }
}

关于java - 渐变 :compilePlayBinaryPlayRoutes is not generating all imports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44208911/

相关文章:

gradle - 具有非标准文件夹层次结构的多个项目Gradle构建

c++ - Gradle和Cmake无法找到绝对存在的cpp文件

java - 带反射的 NPE

java - 让 Selenium-WebDriver 示例正常工作

java - Amazon S3 客户端未列出存储桶中的所有文件夹

scala - 提供 Scala.js Assets

java - 确定树高的代码

java - 定期连接数据库

scala - 在 Scala [2.11.6] 中,如何从一组有序的 Longs 创建一个惰性对象流

android - build.gradle 项目级别显示不可读格式 ANDROID STUDIO