我正在将 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/